+/**\r
+ Update the component name for the iSCSI instance.\r
+\r
+ @param[in] IScsiExtScsiPassThru A pointer to the EFI_EXT_SCSI_PASS_THRU_PROTOCOL instance.\r
+ \r
+ @retval EFI_SUCCESS Update the ControllerNameTable of this instance successfully.\r
+ @retval EFI_INVALID_PARAMETER The input parameter is invalid.\r
+ @retval EFI_UNSUPPORTED Can't get the corresponding NIC info from the Controller handle.\r
+ \r
+**/\r
+EFI_STATUS\r
+UpdateName (\r
+ IN EFI_EXT_SCSI_PASS_THRU_PROTOCOL *IScsiExtScsiPassThru\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ CHAR16 HandleName[150];\r
+ ISCSI_DRIVER_DATA *Private;\r
+ EFI_MAC_ADDRESS MacAddress;\r
+ UINTN HwAddressSize;\r
+ UINT16 VlanId;\r
+ CHAR16 MacString[70];\r
+\r
+ if (IScsiExtScsiPassThru == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ \r
+ Private = ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU (IScsiExtScsiPassThru);\r
+\r
+ //\r
+ // Get the mac string, it's the name of various variable\r
+ //\r
+ Status = NetLibGetMacAddress (Private->Controller, &MacAddress, &HwAddressSize);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+ VlanId = NetLibGetVlanId (Private->Controller);\r
+ IScsiMacAddrToStr (&MacAddress, (UINT32) HwAddressSize, VlanId, MacString);\r
+ \r
+ UnicodeSPrint (\r
+ HandleName,\r
+ sizeof (HandleName),\r
+ L"iSCSI IPv4 (MacString=%s)",\r
+ MacString\r
+ );\r
+\r
+ if (mIScsiControllerNameTable != NULL) {\r
+ FreeUnicodeStringTable (mIScsiControllerNameTable);\r
+ mIScsiControllerNameTable = NULL;\r
+ }\r
+\r
+ Status = AddUnicodeString2 (\r
+ "eng",\r
+ gIScsiComponentName.SupportedLanguages,\r
+ &mIScsiControllerNameTable,\r
+ HandleName,\r
+ TRUE\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ return AddUnicodeString2 (\r
+ "en",\r
+ gIScsiComponentName2.SupportedLanguages,\r
+ &mIScsiControllerNameTable,\r
+ HandleName,\r
+ FALSE\r
+ );\r
+}\r
+\r