+//\r
+// functions defined in UndiAipImpl.c\r
+//\r
+\r
+/**\r
+ Returns the current state information for the adapter.\r
+\r
+ This function returns information of type InformationType from the adapter.\r
+ If an adapter does not support the requested informational type, then\r
+ EFI_UNSUPPORTED is returned. \r
+\r
+ @param[in] This A pointer to the EFI_ADAPTER_INFORMATION_PROTOCOL instance.\r
+ @param[in] InformationType A pointer to an EFI_GUID that defines the contents of InformationBlock.\r
+ @param[out] InforamtionBlock The service returns a pointer to the buffer with the InformationBlock\r
+ structure which contains details about the data specific to InformationType.\r
+ @param[out] InforamtionBlockSize The driver returns the size of the InformationBlock in bytes.\r
+\r
+ @retval EFI_SUCCESS The InformationType information was retrieved.\r
+ @retval EFI_UNSUPPORTED The InformationType is not known.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
+ @retval EFI_INVALID_PARAMETER This is NULL. \r
+ @retval EFI_INVALID_PARAMETER InformationBlock is NULL. \r
+ @retval EFI_INVALID_PARAMETER InformationBlockSize is NULL.\r
+\r
+**/ \r
+EFI_STATUS\r
+EFIAPI\r
+UndiAipGetInfo (\r
+ IN EFI_ADAPTER_INFORMATION_PROTOCOL *This,\r
+ IN EFI_GUID *InformationType,\r
+ OUT VOID **InformationBlock,\r
+ OUT UINTN *InformationBlockSize\r
+ );\r
+\r
+/**\r
+ Sets state information for an adapter.\r
+\r
+ This function sends information of type InformationType for an adapter.\r
+ If an adapter does not support the requested information type, then EFI_UNSUPPORTED\r
+ is returned.\r
+\r
+ @param[in] This A pointer to the EFI_ADAPTER_INFORMATION_PROTOCOL instance.\r
+ @param[in] InformationType A pointer to an EFI_GUID that defines the contents of InformationBlock.\r
+ @param[in] InforamtionBlock A pointer to the InformationBlock structure which contains details\r
+ about the data specific to InformationType.\r
+ @param[in] InforamtionBlockSize The size of the InformationBlock in bytes.\r
+\r
+ @retval EFI_SUCCESS The information was received and interpreted successfully.\r
+ @retval EFI_UNSUPPORTED The InformationType is not known.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_INVALID_PARAMETER This is NULL.\r
+ @retval EFI_INVALID_PARAMETER InformationBlock is NULL.\r
+ @retval EFI_WRITE_PROTECTED The InformationType cannot be modified using EFI_ADAPTER_INFO_SET_INFO().\r
+\r
+**/ \r
+EFI_STATUS\r
+EFIAPI\r
+UndiAipSetInfo (\r
+ IN EFI_ADAPTER_INFORMATION_PROTOCOL *This,\r
+ IN EFI_GUID *InformationType,\r
+ IN VOID *InformationBlock,\r
+ IN UINTN InformationBlockSize\r
+ );\r
+\r
+/**\r
+ Get a list of supported information types for this instance of the protocol.\r
+\r
+ This function returns a list of InformationType GUIDs that are supported on an\r
+ adapter with this instance of EFI_ADAPTER_INFORMATION_PROTOCOL. The list is returned\r
+ in InfoTypesBuffer, and the number of GUID pointers in InfoTypesBuffer is returned in\r
+ InfoTypesBufferCount.\r
+\r
+ @param[in] This A pointer to the EFI_ADAPTER_INFORMATION_PROTOCOL instance.\r
+ @param[out] InfoTypesBuffer A pointer to the list of InformationType GUID pointers that are supported\r
+ by This.\r
+ @param[out] InfoTypesBufferCount A pointer to the number of GUID pointers present in InfoTypesBuffer.\r
+\r
+ @retval EFI_SUCCESS The list of information type GUIDs that are supported on this adapter was\r
+ returned in InfoTypesBuffer. The number of information type GUIDs was\r
+ returned in InfoTypesBufferCount.\r
+ @retval EFI_INVALID_PARAMETER This is NULL.\r
+ @retval EFI_INVALID_PARAMETER InfoTypesBuffer is NULL.\r
+ @retval EFI_INVALID_PARAMETER InfoTypesBufferCount is NULL.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the results.\r
+\r
+**/ \r
+EFI_STATUS\r
+EFIAPI\r
+UndiAipGetSupportedTypes (\r
+ IN EFI_ADAPTER_INFORMATION_PROTOCOL *This,\r
+ OUT EFI_GUID **InfoTypesBuffer,\r
+ OUT UINTN *InfoTypesBufferCount\r
+ );\r
+\r