1bcecde140a561c64e297225904afebebd62336cejljusten/** @file 2bcecde140a561c64e297225904afebebd62336cejljusten 30c9f676d5012f4d7d5cfd8195e07c403222a0265niruiyuCopyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR> 4bcecde140a561c64e297225904afebebd62336cejljusten 5bcecde140a561c64e297225904afebebd62336cejljustenThis program and the accompanying materials 6bcecde140a561c64e297225904afebebd62336cejljustenare licensed and made available under the terms and conditions 7bcecde140a561c64e297225904afebebd62336cejljustenof the BSD License which accompanies this distribution. The 8bcecde140a561c64e297225904afebebd62336cejljustenfull text of the license may be found at 9bcecde140a561c64e297225904afebebd62336cejljustenhttp://opensource.org/licenses/bsd-license.php 10bcecde140a561c64e297225904afebebd62336cejljusten 11bcecde140a561c64e297225904afebebd62336cejljustenTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12bcecde140a561c64e297225904afebebd62336cejljustenWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13bcecde140a561c64e297225904afebebd62336cejljusten 14bcecde140a561c64e297225904afebebd62336cejljusten**/ 15bcecde140a561c64e297225904afebebd62336cejljusten 16bcecde140a561c64e297225904afebebd62336cejljusten#include "BiosBlkIo.h" 17bcecde140a561c64e297225904afebebd62336cejljusten 18bcecde140a561c64e297225904afebebd62336cejljusten/** 19bcecde140a561c64e297225904afebebd62336cejljusten Retrieves a Unicode string that is the user readable name of the driver. 20bcecde140a561c64e297225904afebebd62336cejljusten 21bcecde140a561c64e297225904afebebd62336cejljusten This function retrieves the user readable name of a driver in the form of a 22bcecde140a561c64e297225904afebebd62336cejljusten Unicode string. If the driver specified by This has a user readable name in 23bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language, then a pointer to the driver name is 24bcecde140a561c64e297225904afebebd62336cejljusten returned in DriverName, and EFI_SUCCESS is returned. If the driver specified 25bcecde140a561c64e297225904afebebd62336cejljusten by This does not support the language specified by Language, 26bcecde140a561c64e297225904afebebd62336cejljusten then EFI_UNSUPPORTED is returned. 27bcecde140a561c64e297225904afebebd62336cejljusten 28bcecde140a561c64e297225904afebebd62336cejljusten @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 29bcecde140a561c64e297225904afebebd62336cejljusten EFI_COMPONENT_NAME_PROTOCOL instance. 30bcecde140a561c64e297225904afebebd62336cejljusten 31bcecde140a561c64e297225904afebebd62336cejljusten @param Language[in] A pointer to a Null-terminated ASCII string 32bcecde140a561c64e297225904afebebd62336cejljusten array indicating the language. This is the 33bcecde140a561c64e297225904afebebd62336cejljusten language of the driver name that the caller is 34bcecde140a561c64e297225904afebebd62336cejljusten requesting, and it must match one of the 35bcecde140a561c64e297225904afebebd62336cejljusten languages specified in SupportedLanguages. The 36bcecde140a561c64e297225904afebebd62336cejljusten number of languages supported by a driver is up 37bcecde140a561c64e297225904afebebd62336cejljusten to the driver writer. Language is specified 38bcecde140a561c64e297225904afebebd62336cejljusten in RFC 4646 or ISO 639-2 language code format. 39bcecde140a561c64e297225904afebebd62336cejljusten 40bcecde140a561c64e297225904afebebd62336cejljusten @param DriverName[out] A pointer to the Unicode string to return. 41bcecde140a561c64e297225904afebebd62336cejljusten This Unicode string is the name of the 42bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This in the language 43bcecde140a561c64e297225904afebebd62336cejljusten specified by Language. 44bcecde140a561c64e297225904afebebd62336cejljusten 45bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_SUCCESS The Unicode string for the Driver specified by 46bcecde140a561c64e297225904afebebd62336cejljusten This and the language specified by Language was 47bcecde140a561c64e297225904afebebd62336cejljusten returned in DriverName. 48bcecde140a561c64e297225904afebebd62336cejljusten 49bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER Language is NULL. 50bcecde140a561c64e297225904afebebd62336cejljusten 51bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER DriverName is NULL. 52bcecde140a561c64e297225904afebebd62336cejljusten 53bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This does not support 54bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language. 55bcecde140a561c64e297225904afebebd62336cejljusten 56bcecde140a561c64e297225904afebebd62336cejljusten**/ 57bcecde140a561c64e297225904afebebd62336cejljustenEFI_STATUS 58bcecde140a561c64e297225904afebebd62336cejljustenEFIAPI 59bcecde140a561c64e297225904afebebd62336cejljustenBiosBlockIoComponentNameGetDriverName ( 60bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_COMPONENT_NAME_PROTOCOL *This, 61bcecde140a561c64e297225904afebebd62336cejljusten IN CHAR8 *Language, 62bcecde140a561c64e297225904afebebd62336cejljusten OUT CHAR16 **DriverName 63bcecde140a561c64e297225904afebebd62336cejljusten ); 64bcecde140a561c64e297225904afebebd62336cejljusten 65bcecde140a561c64e297225904afebebd62336cejljusten/** 66bcecde140a561c64e297225904afebebd62336cejljusten Retrieves a Unicode string that is the user readable name of the controller 67bcecde140a561c64e297225904afebebd62336cejljusten that is being managed by a driver. 68bcecde140a561c64e297225904afebebd62336cejljusten 69bcecde140a561c64e297225904afebebd62336cejljusten This function retrieves the user readable name of the controller specified by 70bcecde140a561c64e297225904afebebd62336cejljusten ControllerHandle and ChildHandle in the form of a Unicode string. If the 71bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This has a user readable name in the language specified by 72bcecde140a561c64e297225904afebebd62336cejljusten Language, then a pointer to the controller name is returned in ControllerName, 73bcecde140a561c64e297225904afebebd62336cejljusten and EFI_SUCCESS is returned. If the driver specified by This is not currently 74bcecde140a561c64e297225904afebebd62336cejljusten managing the controller specified by ControllerHandle and ChildHandle, 75bcecde140a561c64e297225904afebebd62336cejljusten then EFI_UNSUPPORTED is returned. If the driver specified by This does not 76bcecde140a561c64e297225904afebebd62336cejljusten support the language specified by Language, then EFI_UNSUPPORTED is returned. 77bcecde140a561c64e297225904afebebd62336cejljusten 78bcecde140a561c64e297225904afebebd62336cejljusten @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 79bcecde140a561c64e297225904afebebd62336cejljusten EFI_COMPONENT_NAME_PROTOCOL instance. 80bcecde140a561c64e297225904afebebd62336cejljusten 81bcecde140a561c64e297225904afebebd62336cejljusten @param ControllerHandle[in] The handle of a controller that the driver 82bcecde140a561c64e297225904afebebd62336cejljusten specified by This is managing. This handle 83bcecde140a561c64e297225904afebebd62336cejljusten specifies the controller whose name is to be 84bcecde140a561c64e297225904afebebd62336cejljusten returned. 85bcecde140a561c64e297225904afebebd62336cejljusten 86bcecde140a561c64e297225904afebebd62336cejljusten @param ChildHandle[in] The handle of the child controller to retrieve 87bcecde140a561c64e297225904afebebd62336cejljusten the name of. This is an optional parameter that 88bcecde140a561c64e297225904afebebd62336cejljusten may be NULL. It will be NULL for device 89bcecde140a561c64e297225904afebebd62336cejljusten drivers. It will also be NULL for a bus drivers 90bcecde140a561c64e297225904afebebd62336cejljusten that wish to retrieve the name of the bus 91bcecde140a561c64e297225904afebebd62336cejljusten controller. It will not be NULL for a bus 92bcecde140a561c64e297225904afebebd62336cejljusten driver that wishes to retrieve the name of a 93bcecde140a561c64e297225904afebebd62336cejljusten child controller. 94bcecde140a561c64e297225904afebebd62336cejljusten 95bcecde140a561c64e297225904afebebd62336cejljusten @param Language[in] A pointer to a Null-terminated ASCII string 96bcecde140a561c64e297225904afebebd62336cejljusten array indicating the language. This is the 97bcecde140a561c64e297225904afebebd62336cejljusten language of the driver name that the caller is 98bcecde140a561c64e297225904afebebd62336cejljusten requesting, and it must match one of the 99bcecde140a561c64e297225904afebebd62336cejljusten languages specified in SupportedLanguages. The 100bcecde140a561c64e297225904afebebd62336cejljusten number of languages supported by a driver is up 101bcecde140a561c64e297225904afebebd62336cejljusten to the driver writer. Language is specified in 102bcecde140a561c64e297225904afebebd62336cejljusten RFC 4646 or ISO 639-2 language code format. 103bcecde140a561c64e297225904afebebd62336cejljusten 104bcecde140a561c64e297225904afebebd62336cejljusten @param ControllerName[out] A pointer to the Unicode string to return. 105bcecde140a561c64e297225904afebebd62336cejljusten This Unicode string is the name of the 106bcecde140a561c64e297225904afebebd62336cejljusten controller specified by ControllerHandle and 107bcecde140a561c64e297225904afebebd62336cejljusten ChildHandle in the language specified by 108bcecde140a561c64e297225904afebebd62336cejljusten Language from the point of view of the driver 109bcecde140a561c64e297225904afebebd62336cejljusten specified by This. 110bcecde140a561c64e297225904afebebd62336cejljusten 111bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_SUCCESS The Unicode string for the user readable name in 112bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language for the 113bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This was returned in 114bcecde140a561c64e297225904afebebd62336cejljusten DriverName. 115bcecde140a561c64e297225904afebebd62336cejljusten 1160c9f676d5012f4d7d5cfd8195e07c403222a0265niruiyu @retval EFI_INVALID_PARAMETER ControllerHandle is NULL. 117bcecde140a561c64e297225904afebebd62336cejljusten 118bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid 119bcecde140a561c64e297225904afebebd62336cejljusten EFI_HANDLE. 120bcecde140a561c64e297225904afebebd62336cejljusten 121bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER Language is NULL. 122bcecde140a561c64e297225904afebebd62336cejljusten 123bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER ControllerName is NULL. 124bcecde140a561c64e297225904afebebd62336cejljusten 125bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This is not currently 126bcecde140a561c64e297225904afebebd62336cejljusten managing the controller specified by 127bcecde140a561c64e297225904afebebd62336cejljusten ControllerHandle and ChildHandle. 128bcecde140a561c64e297225904afebebd62336cejljusten 129bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This does not support 130bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language. 131bcecde140a561c64e297225904afebebd62336cejljusten 132bcecde140a561c64e297225904afebebd62336cejljusten**/ 133bcecde140a561c64e297225904afebebd62336cejljustenEFI_STATUS 134bcecde140a561c64e297225904afebebd62336cejljustenEFIAPI 135bcecde140a561c64e297225904afebebd62336cejljustenBiosBlockIoComponentNameGetControllerName ( 136bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_COMPONENT_NAME_PROTOCOL *This, 137bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_HANDLE ControllerHandle, 138bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_HANDLE ChildHandle OPTIONAL, 139bcecde140a561c64e297225904afebebd62336cejljusten IN CHAR8 *Language, 140bcecde140a561c64e297225904afebebd62336cejljusten OUT CHAR16 **ControllerName 141bcecde140a561c64e297225904afebebd62336cejljusten ); 142bcecde140a561c64e297225904afebebd62336cejljusten 143bcecde140a561c64e297225904afebebd62336cejljusten 144bcecde140a561c64e297225904afebebd62336cejljusten// 145bcecde140a561c64e297225904afebebd62336cejljusten// EFI Component Name Protocol 146bcecde140a561c64e297225904afebebd62336cejljusten// 147bcecde140a561c64e297225904afebebd62336cejljustenGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gBiosBlockIoComponentName = { 148bcecde140a561c64e297225904afebebd62336cejljusten BiosBlockIoComponentNameGetDriverName, 149bcecde140a561c64e297225904afebebd62336cejljusten BiosBlockIoComponentNameGetControllerName, 150bcecde140a561c64e297225904afebebd62336cejljusten "eng" 151bcecde140a561c64e297225904afebebd62336cejljusten}; 152bcecde140a561c64e297225904afebebd62336cejljusten 153bcecde140a561c64e297225904afebebd62336cejljusten// 154bcecde140a561c64e297225904afebebd62336cejljusten// EFI Component Name 2 Protocol 155bcecde140a561c64e297225904afebebd62336cejljusten// 156bcecde140a561c64e297225904afebebd62336cejljustenGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gBiosBlockIoComponentName2 = { 157bcecde140a561c64e297225904afebebd62336cejljusten (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) BiosBlockIoComponentNameGetDriverName, 158bcecde140a561c64e297225904afebebd62336cejljusten (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) BiosBlockIoComponentNameGetControllerName, 159bcecde140a561c64e297225904afebebd62336cejljusten "en" 160bcecde140a561c64e297225904afebebd62336cejljusten}; 161bcecde140a561c64e297225904afebebd62336cejljusten 162bcecde140a561c64e297225904afebebd62336cejljusten 163bcecde140a561c64e297225904afebebd62336cejljustenGLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mBiosBlockIoDriverNameTable[] = { 164bcecde140a561c64e297225904afebebd62336cejljusten { 165bcecde140a561c64e297225904afebebd62336cejljusten "eng;en", 166bcecde140a561c64e297225904afebebd62336cejljusten L"BIOS[INT13] Block Io Driver" 167bcecde140a561c64e297225904afebebd62336cejljusten }, 168bcecde140a561c64e297225904afebebd62336cejljusten { 169bcecde140a561c64e297225904afebebd62336cejljusten NULL, 170bcecde140a561c64e297225904afebebd62336cejljusten NULL 171bcecde140a561c64e297225904afebebd62336cejljusten } 172bcecde140a561c64e297225904afebebd62336cejljusten}; 173bcecde140a561c64e297225904afebebd62336cejljusten 174bcecde140a561c64e297225904afebebd62336cejljusten/** 175bcecde140a561c64e297225904afebebd62336cejljusten Retrieves a Unicode string that is the user readable name of the driver. 176bcecde140a561c64e297225904afebebd62336cejljusten 177bcecde140a561c64e297225904afebebd62336cejljusten This function retrieves the user readable name of a driver in the form of a 178bcecde140a561c64e297225904afebebd62336cejljusten Unicode string. If the driver specified by This has a user readable name in 179bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language, then a pointer to the driver name is 180bcecde140a561c64e297225904afebebd62336cejljusten returned in DriverName, and EFI_SUCCESS is returned. If the driver specified 181bcecde140a561c64e297225904afebebd62336cejljusten by This does not support the language specified by Language, 182bcecde140a561c64e297225904afebebd62336cejljusten then EFI_UNSUPPORTED is returned. 183bcecde140a561c64e297225904afebebd62336cejljusten 184bcecde140a561c64e297225904afebebd62336cejljusten @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 185bcecde140a561c64e297225904afebebd62336cejljusten EFI_COMPONENT_NAME_PROTOCOL instance. 186bcecde140a561c64e297225904afebebd62336cejljusten 187bcecde140a561c64e297225904afebebd62336cejljusten @param Language[in] A pointer to a Null-terminated ASCII string 188bcecde140a561c64e297225904afebebd62336cejljusten array indicating the language. This is the 189bcecde140a561c64e297225904afebebd62336cejljusten language of the driver name that the caller is 190bcecde140a561c64e297225904afebebd62336cejljusten requesting, and it must match one of the 191bcecde140a561c64e297225904afebebd62336cejljusten languages specified in SupportedLanguages. The 192bcecde140a561c64e297225904afebebd62336cejljusten number of languages supported by a driver is up 193bcecde140a561c64e297225904afebebd62336cejljusten to the driver writer. Language is specified 194bcecde140a561c64e297225904afebebd62336cejljusten in RFC 4646 or ISO 639-2 language code format. 195bcecde140a561c64e297225904afebebd62336cejljusten 196bcecde140a561c64e297225904afebebd62336cejljusten @param DriverName[out] A pointer to the Unicode string to return. 197bcecde140a561c64e297225904afebebd62336cejljusten This Unicode string is the name of the 198bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This in the language 199bcecde140a561c64e297225904afebebd62336cejljusten specified by Language. 200bcecde140a561c64e297225904afebebd62336cejljusten 201bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_SUCCESS The Unicode string for the Driver specified by 202bcecde140a561c64e297225904afebebd62336cejljusten This and the language specified by Language was 203bcecde140a561c64e297225904afebebd62336cejljusten returned in DriverName. 204bcecde140a561c64e297225904afebebd62336cejljusten 205bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER Language is NULL. 206bcecde140a561c64e297225904afebebd62336cejljusten 207bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER DriverName is NULL. 208bcecde140a561c64e297225904afebebd62336cejljusten 209bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This does not support 210bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language. 211bcecde140a561c64e297225904afebebd62336cejljusten 212bcecde140a561c64e297225904afebebd62336cejljusten**/ 213bcecde140a561c64e297225904afebebd62336cejljustenEFI_STATUS 214bcecde140a561c64e297225904afebebd62336cejljustenEFIAPI 215bcecde140a561c64e297225904afebebd62336cejljustenBiosBlockIoComponentNameGetDriverName ( 216bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_COMPONENT_NAME_PROTOCOL *This, 217bcecde140a561c64e297225904afebebd62336cejljusten IN CHAR8 *Language, 218bcecde140a561c64e297225904afebebd62336cejljusten OUT CHAR16 **DriverName 219bcecde140a561c64e297225904afebebd62336cejljusten ) 220bcecde140a561c64e297225904afebebd62336cejljusten{ 221bcecde140a561c64e297225904afebebd62336cejljusten return LookupUnicodeString2 ( 222bcecde140a561c64e297225904afebebd62336cejljusten Language, 223bcecde140a561c64e297225904afebebd62336cejljusten This->SupportedLanguages, 224bcecde140a561c64e297225904afebebd62336cejljusten mBiosBlockIoDriverNameTable, 225bcecde140a561c64e297225904afebebd62336cejljusten DriverName, 226bcecde140a561c64e297225904afebebd62336cejljusten (BOOLEAN)(This == &gBiosBlockIoComponentName) 227bcecde140a561c64e297225904afebebd62336cejljusten ); 228bcecde140a561c64e297225904afebebd62336cejljusten} 229bcecde140a561c64e297225904afebebd62336cejljusten 230bcecde140a561c64e297225904afebebd62336cejljusten/** 231bcecde140a561c64e297225904afebebd62336cejljusten Retrieves a Unicode string that is the user readable name of the controller 232bcecde140a561c64e297225904afebebd62336cejljusten that is being managed by a driver. 233bcecde140a561c64e297225904afebebd62336cejljusten 234bcecde140a561c64e297225904afebebd62336cejljusten This function retrieves the user readable name of the controller specified by 235bcecde140a561c64e297225904afebebd62336cejljusten ControllerHandle and ChildHandle in the form of a Unicode string. If the 236bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This has a user readable name in the language specified by 237bcecde140a561c64e297225904afebebd62336cejljusten Language, then a pointer to the controller name is returned in ControllerName, 238bcecde140a561c64e297225904afebebd62336cejljusten and EFI_SUCCESS is returned. If the driver specified by This is not currently 239bcecde140a561c64e297225904afebebd62336cejljusten managing the controller specified by ControllerHandle and ChildHandle, 240bcecde140a561c64e297225904afebebd62336cejljusten then EFI_UNSUPPORTED is returned. If the driver specified by This does not 241bcecde140a561c64e297225904afebebd62336cejljusten support the language specified by Language, then EFI_UNSUPPORTED is returned. 242bcecde140a561c64e297225904afebebd62336cejljusten 243bcecde140a561c64e297225904afebebd62336cejljusten @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 244bcecde140a561c64e297225904afebebd62336cejljusten EFI_COMPONENT_NAME_PROTOCOL instance. 245bcecde140a561c64e297225904afebebd62336cejljusten 246bcecde140a561c64e297225904afebebd62336cejljusten @param ControllerHandle[in] The handle of a controller that the driver 247bcecde140a561c64e297225904afebebd62336cejljusten specified by This is managing. This handle 248bcecde140a561c64e297225904afebebd62336cejljusten specifies the controller whose name is to be 249bcecde140a561c64e297225904afebebd62336cejljusten returned. 250bcecde140a561c64e297225904afebebd62336cejljusten 251bcecde140a561c64e297225904afebebd62336cejljusten @param ChildHandle[in] The handle of the child controller to retrieve 252bcecde140a561c64e297225904afebebd62336cejljusten the name of. This is an optional parameter that 253bcecde140a561c64e297225904afebebd62336cejljusten may be NULL. It will be NULL for device 254bcecde140a561c64e297225904afebebd62336cejljusten drivers. It will also be NULL for a bus drivers 255bcecde140a561c64e297225904afebebd62336cejljusten that wish to retrieve the name of the bus 256bcecde140a561c64e297225904afebebd62336cejljusten controller. It will not be NULL for a bus 257bcecde140a561c64e297225904afebebd62336cejljusten driver that wishes to retrieve the name of a 258bcecde140a561c64e297225904afebebd62336cejljusten child controller. 259bcecde140a561c64e297225904afebebd62336cejljusten 260bcecde140a561c64e297225904afebebd62336cejljusten @param Language[in] A pointer to a Null-terminated ASCII string 261bcecde140a561c64e297225904afebebd62336cejljusten array indicating the language. This is the 262bcecde140a561c64e297225904afebebd62336cejljusten language of the driver name that the caller is 263bcecde140a561c64e297225904afebebd62336cejljusten requesting, and it must match one of the 264bcecde140a561c64e297225904afebebd62336cejljusten languages specified in SupportedLanguages. The 265bcecde140a561c64e297225904afebebd62336cejljusten number of languages supported by a driver is up 266bcecde140a561c64e297225904afebebd62336cejljusten to the driver writer. Language is specified in 267bcecde140a561c64e297225904afebebd62336cejljusten RFC 4646 or ISO 639-2 language code format. 268bcecde140a561c64e297225904afebebd62336cejljusten 269bcecde140a561c64e297225904afebebd62336cejljusten @param ControllerName[out] A pointer to the Unicode string to return. 270bcecde140a561c64e297225904afebebd62336cejljusten This Unicode string is the name of the 271bcecde140a561c64e297225904afebebd62336cejljusten controller specified by ControllerHandle and 272bcecde140a561c64e297225904afebebd62336cejljusten ChildHandle in the language specified by 273bcecde140a561c64e297225904afebebd62336cejljusten Language from the point of view of the driver 274bcecde140a561c64e297225904afebebd62336cejljusten specified by This. 275bcecde140a561c64e297225904afebebd62336cejljusten 276bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_SUCCESS The Unicode string for the user readable name in 277bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language for the 278bcecde140a561c64e297225904afebebd62336cejljusten driver specified by This was returned in 279bcecde140a561c64e297225904afebebd62336cejljusten DriverName. 280bcecde140a561c64e297225904afebebd62336cejljusten 2810c9f676d5012f4d7d5cfd8195e07c403222a0265niruiyu @retval EFI_INVALID_PARAMETER ControllerHandle is NULL. 282bcecde140a561c64e297225904afebebd62336cejljusten 283bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid 284bcecde140a561c64e297225904afebebd62336cejljusten EFI_HANDLE. 285bcecde140a561c64e297225904afebebd62336cejljusten 286bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER Language is NULL. 287bcecde140a561c64e297225904afebebd62336cejljusten 288bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_INVALID_PARAMETER ControllerName is NULL. 289bcecde140a561c64e297225904afebebd62336cejljusten 290bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This is not currently 291bcecde140a561c64e297225904afebebd62336cejljusten managing the controller specified by 292bcecde140a561c64e297225904afebebd62336cejljusten ControllerHandle and ChildHandle. 293bcecde140a561c64e297225904afebebd62336cejljusten 294bcecde140a561c64e297225904afebebd62336cejljusten @retval EFI_UNSUPPORTED The driver specified by This does not support 295bcecde140a561c64e297225904afebebd62336cejljusten the language specified by Language. 296bcecde140a561c64e297225904afebebd62336cejljusten 297bcecde140a561c64e297225904afebebd62336cejljusten**/ 298bcecde140a561c64e297225904afebebd62336cejljustenEFI_STATUS 299bcecde140a561c64e297225904afebebd62336cejljustenEFIAPI 300bcecde140a561c64e297225904afebebd62336cejljustenBiosBlockIoComponentNameGetControllerName ( 301bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_COMPONENT_NAME_PROTOCOL *This, 302bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_HANDLE ControllerHandle, 303bcecde140a561c64e297225904afebebd62336cejljusten IN EFI_HANDLE ChildHandle OPTIONAL, 304bcecde140a561c64e297225904afebebd62336cejljusten IN CHAR8 *Language, 305bcecde140a561c64e297225904afebebd62336cejljusten OUT CHAR16 **ControllerName 306bcecde140a561c64e297225904afebebd62336cejljusten ) 307bcecde140a561c64e297225904afebebd62336cejljusten{ 308bcecde140a561c64e297225904afebebd62336cejljusten return EFI_UNSUPPORTED; 309bcecde140a561c64e297225904afebebd62336cejljusten} 310