当前位置: 首页 > news >正文

UEFI学习笔记(七):UEFI_Spec_2_10 Protocols整理

UEFI学习笔记(七):UEFI_Spec_2_10 Protocols整理

    • UEFI Protocols
      • 1. EFI_LOADED_IMAGE_PROTOCOL
      • 2. EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL
      • 3. EFI_DEVICE_PATH_PROTOCOL
      • 4. EFI_DRIVER_BINDING_PROTOCOL
      • 5. EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL
      • 6. EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL
      • 7. EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL
      • 8. EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
      • 9. EFI_COMPONENT_NAME2_PROTOCOL
      • 10. EFI_SIMPLE_TEXT_INPUT_PROTOCOL
      • 11. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
      • 12. EFI_SIMPLE_POINTER_PROTOCOL
      • 13. EFI_SERIAL_IO_PROTOCOL
      • 14. EFI_LOAD_FILE_PROTOCOL
      • 15. EFI_LOAD_FILE2_PROTOCOL
      • 16. EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
      • 17. EFI_FILE_PROTOCOL
      • 18. EFI_DISK_IO_PROTOCOL
      • 19. EFI_BLOCK_IO_PROTOCOL
      • 20. EFI_BLOCK_IO2_PROTOCOL
      • 21. EFI_UNICODE_COLLATION_PROTOCOL
      • 22. EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
      • 23. EFI_PCI_IO_PROTOCOL
      • 24. EFI_USB_IO_PROTOCOL
      • 25. EFI_SIMPLE_NETWORK_PROTOCOL
      • 26. EFI_PXE_BASE_CODE_PROTOCOL
      • 27. EFI_BIS_PROTOCOL
      • 28. EFI_DEBUG_SUPPORT_PROTOCOL
      • 29. EFI_DEBUGPORT_PROTOCOL
      • 30. EFI_DECOMPRESS_PROTOCOL
      • 31. EFI_EBC_PROTOCOL
      • 32. EFI_GRAPHICS_OUTPUT_PROTOCOL
      • 33. EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL
      • 34. EFI_EXT_SCSI_PASS_THRU_PROTOCOL
      • 35. EFI_USB2_HC_PROTOCOL
      • 36. EFI_AUTHENTICATION_INFO_PROTOCOL
      • 37. EFI_DEVICE_PATH_UTILITIES_PROTOCOL
      • 38. EFI_DEVICE_PATH_TO_TEXT_PROTOCOL
      • 39. EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL
      • 40. EFI_EDID_DISCOVERED_PROTOCOL
      • 41. EFI_EDID_ACTIVE_PROTOCOL
      • 42. EFI_EDID_OVERRIDE_PROTOCOL
      • 43. EFI_ISCSI_INITIATOR_NAME_PROTOCOL
      • 44. EFI_TAPE_IO_PROTOCOL
      • 45. EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL
      • 46. EFI_ARP_SERVICE_BINDING_PROTOCOL
      • 47. EFI_ARP_PROTOCOL
      • 48. EFI_DHCP4_SERVICE_BINDING_PROTOCOL
      • 49. EFI_DHCP4_PROTOCOL
      • 50. EFI_TCP4_SERVICE_BINDING_PROTOCOL
      • 51. EFI_TCP4_PROTOCOL
      • 52. EFI_IP4_SERVICE_BINDING_PROTOCOL
      • 53. EFI_IP4_PROTOCOL
      • 54. EFI_IP4_CONFIG2_PROTOCOL
      • 55. EFI_UDP4_SERVICE_BINDING_PROTOCOL
      • 56. EFI_UDP4_PROTOCOL
      • 57. EFI_MTFTP4_SERVICE_BINDING_PROTOCOL
      • 58. EFI_MTFTP4_PROTOCOL
      • 59. EFI_HASH_PROTOCOL
      • 60. EFI_HASH_SERVICE_BINDING_PROTOCOL
      • 61. EFI_SD_MMC_PASS_THRU_PROTOCOL

UEFI Protocols

1. EFI_LOADED_IMAGE_PROTOCOL

提供已加载到内存中的映像信息。

typedef struct {UINT32 Revision;EFI_HANDLE ParentHandle;EFI_System_Table *SystemTable;// Source location of the imageEFI_HANDLE DeviceHandle;EFI_DEVICE_PATH_PROTOCOL *FilePath;VOID *Reserved;// Image’s load optionsUINT32 LoadOptionsSize;VOID *LoadOptions;// Location where image was loadedVOID *ImageBase;UINT64 ImageSize;EFI_MEMORY_TYPE ImageCodeType;EFI_MEMORY_TYPE ImageDataType;EFI_IMAGE_UNLOAD Unload;
} EFI_LOADED_IMAGE_PROTOCOL;

2. EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL

提供已加载映像所在设备的路径描述,使系统能够准确确定已加载映像的来源。

3. EFI_DEVICE_PATH_PROTOCOL

提供关于物理设备或逻辑设备的通用路径/位置信息。

typedef struct _EFI_DEVICE_PATH_PROTOCOL {UINT8 Type;UINT8 SubType;UINT8 Length[2];
} EFI_DEVICE_PATH_PROTOCOL;

4. EFI_DRIVER_BINDING_PROTOCOL

提供服务以确定 UEFI 驱动程序是否支持给定的控制器,以及提供服务以启动和停止给定的控制器。

typedef struct _EFI_DRIVER_BINDING_PROTOCOL {EFI_DRIVER_BINDING_PROTOCOL_SUPPORTED Supported;EFI_DRIVER_BINDING_PROTOCOL_START Start;EFI_DRIVER_BINDING_PROTOCOL_STOP Stop;UINT32 Version;EFI_HANDLE ImageHandle;EFI_HANDLE DriverBindingHandle;
} EFI_DRIVER_BINDING_PROTOCOL;

5. EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL

提供驱动家族 Override 机制,为给定的控制器选择最佳驱动。

typedef struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;
} EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL;

6. EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL

提供一个平台特定的 Override 机制,用于为给定的控制器选择最佳驱动程序。

typedef struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL {EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER GetDriver;EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath;EFI_PLATFORM_DRIVER_OVERRIDE_DRIVER_LOADED DriverLoaded;
} EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL;

7. EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL

提供一个针对总线的 Override 机制,以便为给定的控制器选择最佳驱动程序。

typedef struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL {EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER GetDriver;
} EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL;

8. EFI_DRIVER_DIAGNOSTICS2_PROTOCOL

为 UEFI 驱动所管理的控制器提供诊断服务。

typedef struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL {EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS RunDiagnostics;CHAR8 *SupportedLanguages;
} EFI_DRIVER_DIAGNOSTICS2_PROTOCOL;

9. EFI_COMPONENT_NAME2_PROTOCOL

为 UEFI 驱动和驱动所管理的控制器提供用户可读名称。

typedef struct _EFI_COMPONENT_NAME2_PROTOCOL {EFI_COMPONENT_NAME_GET_DRIVER_NAME GetDriverName;EFI_COMPONENT_NAME_GET_CONTROLLER_NAME GetControllerName;CHAR8 *SupportedLanguages;
} EFI_COMPONENT_NAME2_PROTOCOL;

10. EFI_SIMPLE_TEXT_INPUT_PROTOCOL

支持简单控制台风格文本输入的设备的协议接口。

typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL {EFI_INPUT_RESET Reset;EFI_INPUT_READ_KEY ReadKeyStroke;EFI_EVENT WaitForKey;
} EFI_SIMPLE_TEXT_INPUT_PROTOCOL;

11. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL

支持简单控制台风格文本输出的设备的协议接口。

typedef struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {EFI_TEXT_RESET Reset;EFI_TEXT_STRING OutputString;EFI_TEXT_TEST_STRING TestString;EFI_TEXT_QUERY_MODE QueryMode;EFI_TEXT_SET_MODE SetMode;EFI_TEXT_SET_ATTRIBUTE SetAttribute;EFI_TEXT_CLEAR_SCREEN ClearScreen;EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;EFI_TEXT_ENABLE_CURSOR EnableCursor;SIMPLE_TEXT_OUTPUT_MODE *Mode;
} EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;

12. EFI_SIMPLE_POINTER_PROTOCOL

用于鼠标和轨迹球等设备的协议接口。

typedef struct _EFI_SIMPLE_POINTER_PROTOCOL {EFI_SIMPLE_POINTER_RESET Reset;EFI_SIMPLE_POINTER_GET_STATE GetState;EFI_EVENT WaitForInput;EFI_SIMPLE_INPUT_MODE *Mode;
} EFI_SIMPLE_POINTER_PROTOCOL;

13. EFI_SERIAL_IO_PROTOCOL

该协议用于与任何类型的基于字符的I/O设备通信。

typedef struct {UINT32 Revision;EFI_SERIAL_RESET Reset;EFI_SERIAL_SET_ATTRIBUTES SetAttributes;EFI_SERIAL_SET_CONTROL_BITS SetControl;EFI_SERIAL_GET_CONTROL_BITS GetControl;EFI_SERIAL_WRITE Write;EFI_SERIAL_READ Read;SERIAL_IO_MODE *Mode;CONST EFI_GUID *DeviceTypeGuid; // Revision 1.1
} EFI_SERIAL_IO_PROTOCOL;

14. EFI_LOAD_FILE_PROTOCOL

用于从任意设备读取文件 (主要是启动选项) 的协议接口。

typedef struct _EFI_LOAD_FILE_PROTOCOL {EFI_LOAD_FILE LoadFile;
} EFI_LOAD_FILE_PROTOCOL;

15. EFI_LOAD_FILE2_PROTOCOL

用于从不是引导选项的任意设备获取文件的协议接口。

typedef EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE2_PROTOCOL;

16. EFI_SIMPLE_FILE_SYSTEM_PROTOCOL

提供对设备的文件类型访问的最小接口。

typedef struct _EFI_SIMPLE_FILE_SYSTEM_PROTOCOL {UINT64 Revision;EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME OpenVolume;
} EFI_SIMPLE_FILE_SYSTEM_PROTOCOL;

17. EFI_FILE_PROTOCOL

提供对支持的文件系统的基于文件的访问。

typedef struct_EFI_FILE_PROTOCOL {UINT64 Revision;EFI_FILE_OPEN Open;EFI_FILE_CLOSE Close;EFI_FILE_DELETE Delete;EFI_FILE_READ Read;EFI_FILE_WRITE Write;EFI_FILE_GET_POSITION GetPosition;EFI_FILE_SET_POSITION SetPosition;EFI_FILE_GET_INFO GetInfo;EFI_FILE_SET_INFO SetIEFI_FILE_FLUSH Flush;EFI_FILE_OPEN_EX OpenEx; // Added for revision 2EFI_FILE_READ_EX ReadEx; // Added for revision 2EFI_FILE_WRITE_EX WriteEx; // Added for revision 2EFI_FILE_FLUSH_EX FlushEx; // Added for revision 2
} EFI_FILE_PROTOCOL;

18. EFI_DISK_IO_PROTOCOL

该协议用于抽象块设备I/O接口。

typedef struct _EFI_DISK_IO_PROTOCOL {UINT64 Revision;EFI_DISK_READ ReadDisk;EFI_DISK_WRITE WriteDisk;
} EFI_DISK_IO_PROTOCOL;

19. EFI_BLOCK_IO_PROTOCOL

该协议提供对块设备的控制。

typedef struct _EFI_BLOCK_IO_PROTOCOL {UINT64 Revision;EFI_BLOCK_IO_MEDIA *Media;EFI_BLOCK_RESET Reset;EFI_BLOCK_READ ReadBlocks;EFI_BLOCK_WRITE WriteBlocks;EFI_BLOCK_FLUSH FlushBlocks;
} EFI _BLOCK_IO_PROTOCOL;

20. EFI_BLOCK_IO2_PROTOCOL

用于支持块I/O风格访问的设备的协议接口。该接口能够进行非阻塞式交易。

typedef struct _EFI_BLOCK_IO2_PROTOCOL {EFI_BLOCK_IO_MEDIA *Media;EFI_BLOCK_RESET_EX Reset;EFI_BLOCK_READ_EX ReadBlocksEx;EFI_BLOCK_WRITE_EX WriteBlocksEx;EFI_BLOCK_FLUSH_EX FlushBlocksEx;
} EFI_BLOCK_IO2_PROTOCOL;

21. EFI_UNICODE_COLLATION_PROTOCOL

用于执行不区分大小写的字符串比较。

typedef struct {EFI_UNICODE_COLLATION_STRICOLL StriColl;EFI_UNICODE_COLLATION_METAIMATCH MetaiMatch;EFI_UNICODE_COLLATION_STRLWR StrLwr;EFI_UNICODE_COLLATION_STRUPR StrUpr;EFI_UNICODE_COLLATION_FATTOSTR FatToStr;EFI_UNICODE_COLLATION_STRTOFAT StrToFat;CHAR8 *SupportedLanguages;
} EFI_UNICODE_COLLATION_PROTOCOL;

22. EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL

提供基本内存、I/O、PCI配置和DMA接口,用于将内存、I/O、PCI配置和DMA访问抽象到PCI根桥控制器。

typedef struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL {
EFI_HANDLE
ParentHandle;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollMem;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollIo;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Mem;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Io;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Pci;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM CopyMem;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP Map;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP Unmap;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER FreeBuffer;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH Flush;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES GetAttributes;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES SetAttributes;EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION Configuration;UINT32 SegmentNumber;
} EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL;

23. EFI_PCI_IO_PROTOCOL

提供驱动程序用来访问其PCI控制器的基本内存、I/O、PCI配置和DMA接口.

typedef struct _EFI_PCI_IO_PROTOCOL {EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollMem;EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollIo;EFI_PCI_IO_PROTOCOL_ACCESS Mem;EFI_PCI_IO_PROTOCOL_ACCESS Io;EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS Pci;EFI_PCI_IO_PROTOCOL_COPY_MEM CopyMem;EFI_PCI_IO_PROTOCOL_MAP Map;EFI_PCI_IO_PROTOCOL_UNMAP Unmap;EFI_PCI_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer;EFI_PCI_IO_PROTOCOL_FREE_BUFFER FreeBuffer;EFI_PCI_IO_PROTOCOL_FLUSH Flush;EFI_PCI_IO_PROTOCOL_GET_LOCATION GetLocation;EFI_PCI_IO_PROTOCOL_ATTRIBUTES Attributes;EFI_PCI_IO_PROTOCOL_GET_BAR_ATTRIBUTES GetBarAttributes;EFI_PCI_IO_PROTOCOL_SET_BAR_ATTRIBUTES SetBarAttributes;UINT64 RomSize;VOID *RomImage;
} EFI_PCI_IO_PROTOCOL;

24. EFI_USB_IO_PROTOCOL

提供管理USB设备并与之通信的服务。

typedef struct _EFI_USB_IO_PROTOCOL {EFI_USB_IO_CONTROL_TRANSFER UsbControlTransfer;EFI_USB_IO_BULK_TRANSFER UsbBulkTransfer;EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER UsbAsyncInterruptTransfer;EFI_USB_IO_SYNC_INTERRPUT_TRANSFER UsbSyncInterruptTransferEFI_USB_IO_ISOCHRONOUS_TRANSFER UsbIsochronousTransfer;EFI_USB_IO_ASYNC_ISOCHRONOUS_TRANSFER UsbAsyncIsochronousTransfer;EFI_USB_IO_GET_DEVICE_DESCRIPTOR UsbGetDeviceDescriptor;EFI_USB_IO_GET_CONFIG_DESCRIPTOR UsbGetConfigDescriptor;EFI_USB_IO_GET_INTERFACE_DESCRIPTOR UsbGetInterfaceDescriptor;EFI_USB_IO_GET_ENDPOINT_DESCRIPTOR UsbGetEndpointDescriptor;EFI_USB_IO_GET_STRING_DESCRIPTOR UsbGetStringDescriptor;EFI_USB_IO_GET_SUPPORTED_LANGUAGES UsbGetSupportedLanguages;EFI_USB_IO_PORT_RESET UsbPortReset;
} EFI_USB_IO_PROTOCOL;

25. EFI_SIMPLE_NETWORK_PROTOCOL

提供初始化网络接口、发送数据包、接收数据包和关闭网络接口的服务。

typedef struct _EFI_SIMPLE_NETWORK_PROTOCOL {
UINT64 Revision;EFI_SIMPLE_NETWORK_START Start;EFI_SIMPLE_NETWORK_STOP Stop;EFI_SIMPLE_NETWORK_INITIALIZE Initialize;EFI_SIMPLE_NETWORK_RESET Reset;EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown;EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters;EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress;EFI_SIMPLE_NETWORK_STATISTICS Statistics;EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac;EFI_SIMPLE_NETWORK_NVDATA NvData;EFI_SIMPLE_NETWORK_GET_STATUS GetStatus;EFI_SIMPLE_NETWORK_TRANSMIT Transmit;EFI_SIMPLE_NETWORK_RECEIVE Receive;EFI_EVENT WaitForPacket;EFI_SIMPLE_NETWORK_MODE *Mode;
} EFI_SIMPLE_NETWORK_PROTOCOL;

26. EFI_PXE_BASE_CODE_PROTOCOL

为支持网络启动的设备提供协议接口,为支持网络启动的设备提供协议接口。

typedef struct {UINT64 Revision;EFI_PXE_BASE_CODE_START Start;EFI_PXE_BASE_CODE_STOP Stop;EFI_PXE_BASE_CODE_DHCP Dhcp;EFI_PXE_BASE_CODE_DISCOVER Discover;EFI_PXE_BASE_CODE_MTFTP Mtftp;EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite;EFI_PXE_BASE_CODE_UDP_READ UdpRead;EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;EFI_PXE_BASE_CODE_ARP Arp;EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;EFI_PXE_BASE_CODE_MODE *Mode;
} EFI_PXE_BASE_CODE_PROTOCOL;

27. EFI_BIS_PROTOCOL

该协议用于针对数字证书检查数据块的数字签名,以用于完整性和授权检查。

typedef struct _EFI_BIS_PROTOCOL {EFI_BIS_INITIALIZE Initialize;EFI_BIS_SHUTDOWN Shutdown;EFI_BIS_FREE Free;EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_CERTIFICATE GetBootObjectAuthorizationCertificate;EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_CHECKFLAG GetBootObjectAuthorizationCheckFlag;EFI_BIS_GET_BOOT_OBJECT_AUTHORIZATION_UPDATE_TOKEN GetBootObjectAuthorizationUpdateToken;EFI_BIS_GET_SIGNATURE_INFO GetSignatureInfo;EFI_BIS_UPDATE_BOOT_OBJECT_AUTHORIZATION UpdateBootObjectAuthorization;EFI_BIS_VERIFY_BOOT_OBJECT VerifyBootObject;EFI_BIS_VERIFY_OBJECT_WITH_CREDENTIAL VerifyObjectWithCredential;
} EFI_BIS_PROTOCOL;

28. EFI_DEBUG_SUPPORT_PROTOCOL

这个协议提供了服务,使调试代理能够注册回调函数,这些回调函数会在周期性地调用或特定处理器异常发生时被触发。

def struct {EFI_INSTRUCTION_SET_ARCHITECTURE Isa;EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex;EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback;EFI_REGISTER_EXCEPTION_CALLBACK RegisterExceptionCallback;EFI_INVALIDATE_INSTRUCTION_CACHE InvalidateInstructionCache;
} EFI_DEBUG_SUPPORT_PROTOCOL;

29. EFI_DEBUGPORT_PROTOCOL

此协议提供调试代理和远程主机之间的通信链路,抽象出调试主机和调试目标系统之间的字节流连接。

typedef struct {EFI_DEBUGPORT_RESET Reset;EFI_DEBUGPORT_WRITE Write;EFI_DEBUGPORT_READ Read;EFI_DEBUGPORT_POLL Poll;
} EFI_DEBUGPORT_PROTOCOL;

30. EFI_DECOMPRESS_PROTOCOL

提供解压缩服务,用于解压使用 EFI 压缩算法压缩的镜像。

typedef struct _EFI_DECOMPRESS_PROTOCOL {EFI_DECOMPRESS_GET_INFO GetInfo;EFI_DECOMPRESS_DECOMPRESS Decompress;
} EFI_DECOMPRESS_PROTOCOL;

31. EFI_EBC_PROTOCOL

该协议提供允许执行EFI Byte Code映像并提供相关服务。

typedef struct _EFI_EBC_PROTOCOL {EFI_EBC_CREATE_THUNK CreateThunk;EFI_EBC_UNLOAD_IMAGE UnloadImage;EFI_EBC_REGISTER_ICACHE_FLUSH RegisterICacheFlush;EFI_EBC_GET_VERSION GetVersion;
} EFI_EBC_PROTOCOL;

32. EFI_GRAPHICS_OUTPUT_PROTOCOL

用于图形显示的协议。它提供了一组函数,用于初始化、控制和操作显示设备的图形输出。这个协议支持多种图形模式和操作,使系统能够在启动时显示图形内容。

typedef struct EFI_GRAPHICS_OUTPUT_PROTCOL {EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode;EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt;EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;
} EFI_GRAPHICS_OUTPUT_PROTOCOL;

33. EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL

此协议提供的服务允许将NVM Express命令发送到NVM Express控制器或NVM Express控制器中的特定命名空间。此协议接口针对存储进行了优化。

typedef struct _EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL {EFI_NVM_EXPRESS_PASS_THRU_MODE *Mode;EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU PassThru;EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE GetNextNamespace;EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE GetNamespace;
} EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL;

34. EFI_EXT_SCSI_PASS_THRU_PROTOCOL

提供允许将SCSI直通命令发送到连接到SCSI通道的SCSI设备的服务。它还允许将基于数据包的命令(ATAPI命令)发送到连接到ATA控制器的ATAPI设备。

typedef struct _EFI_EXT_SCSI_PASS_THRU_PROTOCOL {EFI_EXT_SCSI_PASS_THRU_MODE *Mode;EFI_EXT_SCSI_PASS_THRU_PASSTHRU PassThru;EFI_EXT_SCSI_PASS_THRU_GET_NEXT_TARGET_LUN GetNextTargetLun;EFI_EXT_SCSI_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;EFI_EXT_SCSI_PASS_THRU_GET_TARGET_LUN GetTargetLun;EFI_EXT_SCSI_PASS_THRU_RESET_CHANNEL ResetChannel;EFI_EXT_SCSI_PASS_THRU_RESET_TARGET_LUN ResetTargetLun;EFI_EXT_SCSI_PASS_THRU_GET_NEXT_TARGE GetNextTarget;
} EFI_EXT_SCSI_PASS_THRU_PROTOCOL;

35. EFI_USB2_HC_PROTOCOL

提供基本的USB主机控制器管理、USB总线上的基本数据事务以及USB根集线器访问。

typedef struct _EFI_USB2_HC_PROTOCOL {EFI_USB2_HC_PROTOCOL_GET_CAPABILITY GetCapability;EFI_USB2_HC_PROTOCOL_RESET Reset;EFI_USB2_HC_PROTOCOL_GET_STATE GetState;EFI_USB2_HC_PROTOCOL_SET_STATE SetState;EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER ControlTransfer;EFI_USB2_HC_PROTOCOL_BULK_TRANSFER BulkTransfer;EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER AsyncInterruptTransfer;EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER SyncInterruptTransfer;EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER IsochronousTransfer;EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER AsyncIsochronousTransfer;EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS GetRootHubPortStatus;EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE SetRootHubPortFeature;EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE ClearRootHubPortFeatureUINT16 MajorRevision;UINT16 MinorRevision;
} EFI_USB2_HC_PROTOCOL;

36. EFI_AUTHENTICATION_INFO_PROTOCOL

该协议在任何设备句柄上使用,以获得与物理或逻辑设备相关联的认证信息。

typedef struct _EFI_AUTHENTICATION_INFO_PROTOCOL {EFI_AUTHENTICATION_INFO_PROTOCOL_GET Get;EFI_AUTHENTICATION_INFO_PROTOCOL_SET Set;
} EFI_AUTHENTICATION_INFO_PROTOCOL;

37. EFI_DEVICE_PATH_UTILITIES_PROTOCOL

创建和操作设备路径和设备节点。

typedef struct _EFI_DEVICE_PATH_UTILITIES_PROTOCOL {EFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE GetDevicePathSize;EFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH DuplicateDevicePath;EFI_DEVICE_PATH_UTILS_APPEND_PATH AppendDevicePath;EFI_DEVICE_PATH_UTILS_APPEND_NODE AppendDeviceNode;EFI_DEVICE_PATH_UTILS_APPEND_INSTANCE AppendDevicePathInstance;EFI_DEVICE_PATH_UTILS_GET_NEXT_INSTANCE GetNextDevicePathInstance;EFI_DEVICE_PATH_UTILS_IS_MULTI_INSTANCE IsDevicePathMultiInstance;EFI_DEVICE_PATH_UTILS_CREATE_NODE CreateDeviceNode;
} EFI_DEVICE_PATH_UTILITIES_PROTOCOL;

38. EFI_DEVICE_PATH_TO_TEXT_PROTOCOL

将设备节点和路径转换为文本。

typedef struct _EFI_DEVICE_PATH_TO_TEXT_PROTOCOL {EFI_DEVICE_PATH_TO_TEXT_NODE ConvertDeviceNodeToText;EFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText;
} EFI_DEVICE_PATH_TO_TEXT_PROTOCOL;

39. EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL

将文本转换为设备路径和设备节点。

typedef struct _EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL {EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDevicNode;EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicPath;
} EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL;

40. EFI_EDID_DISCOVERED_PROTOCOL

该协议包含从视频输出设备获取的EDID(Extended Display Identification Data,扩展显示识别数据)信息。

typedef struct {UINT32 SizeOfEdid;UINT8 *Edid;
} EFI_EDID_DISCOVERED_PROTOCOL;

41. EFI_EDID_ACTIVE_PROTOCOL

该协议包含活动视频输出设备的EDID信息。如果覆盖可用,则这是从EFI_EDID_OVERRIDE_PROTOCOL检索的EDID信息;如果没有覆盖可用,则这是从EFI_EDID_DISCOVERED_PROTOCOL检索的EDID信息的相同副本。

typedef struct {UINT32 SizeOfEdid;UINT8 *Edid;
} EFI_EDID_ACTIVE_PROTOCOL;

42. EFI_EDID_OVERRIDE_PROTOCOL

该协议由平台产生,以允许平台向图形输出协议的生产者提供EDID信息。

typedef struct _EFI_EDID_OVERRIDE_PROTOCOL {EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID GetEdid;
} EFI_EDID_OVERRIDE_PROTOCOL;

43. EFI_ISCSI_INITIATOR_NAME_PROTOCOL

设置和获取 iSCSI 启动器名称。

typedef struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {EFI_ISCSI_INITIATOR_NAME_GET Get;EFI_ISCSI_INITIATOR_NAME_SET Set;
} EFI_ISCSI_INITIATOR_NAME_PROTOCOL;

44. EFI_TAPE_IO_PROTOCOL

提供控制和访问磁带设备的服务。

typedef struct_EFI_TAPE_IO_PROTOCOL {EFI_TAPE_READ TapeRead;EFI_TAPE_WRITE TapeWrite;EFI_TAPE_REWIND TapeRewind;EFI_TAPE_SPACE TapeSpace;EFI_TAPE_WRITEFM TapeWriteFM;EFI_TAPE_RESET TapeReset;
} EFI_TAPE_IO_PROTOCOL;

45. EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL

用于定位MNP(Microcom Networking Protocol)驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的 MNP 子协议驱动程序的实例。

typedef struct _EFI_MANAGED_NETWORK_PROTOCOL {EFI_MANAGED_NETWORK_GET_MODE_DATA GetModeData;EFI_MANAGED_NETWORK_CONFIGURE Configure;EFI_MANAGED_NETWORK_MCAST_IP_TO_MAC McastIpToMac;EFI_MANAGED_NETWORK_GROUPS Groups;EFI_MANAGED_NETWORK_TRANSMIT Transmit;EFI_MANAGED_NETWORK_RECEIVE Receive;EFI_MANAGED_NETWORK_CANCEL Cancel;EFI_MANAGED_NETWORK_POLL Poll;
} EFI_MANAGED_NETWORK_PROTOCOL;

46. EFI_ARP_SERVICE_BINDING_PROTOCOL

用于定位 ARP 驱动程序支持的通信设备,并创建和销毁 ARP 子协议驱动程序的实例。

47. EFI_ARP_PROTOCOL

用于将本地网络协议地址解析为网络硬件地址。

typedef struct _EFI_ARP_PROTOCOL {EFI_ARP_CONFIGURE Configure;EFI_ARP_ADD Add;EFI_ARP_FIND Find;EFI_ARP_DELETE Delete;EFI_ARP_FLUSH Flush;EFI_ARP_REQUEST Request;EFI_ARP_CANCEL Cancel;
} EFI_ARP_PROTOCOL;

48. EFI_DHCP4_SERVICE_BINDING_PROTOCOL

用于定位由 EFI DHCPv4 协议驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的 EFI DHCPv4 协议子驱动实例。

49. EFI_DHCP4_PROTOCOL

此协议用于收集EFI IPv4协议驱动程序的配置信息,并提供DHCPv4服务器和PXE(Preboot Execution Environment)引导服务器发现服务。

typedef struct _EFI_DHCP4_PROTOCOL {EFI_DHCP4_GET_MODE_DATA GetModeData;EFI_DHCP4_CONFIGURE Configure;EFI_DHCP4_START Start;EFI_DHCP4_RENEW_REBIND RenewRebind;EFI_DHCP4_RELEASE Release;EFI_DHCP4_STOP Stop;EFI_DHCP4_BUILD Build;EFI_DHCP4_TRANSMIT_RECEIVE TransmitReceive;EFI_DHCP4_PARSE Parse;
} EFI_DHCP4_PROTOCOL;

50. EFI_TCP4_SERVICE_BINDING_PROTOCOL

用于定位EFI TCPv4协议驱动程序,以创建和销毁驱动程序的子级,以使用TCP协议与其他主机通信。

51. EFI_TCP4_PROTOCOL

提供发送和接收数据流的服务。

typedef struct _EFI_TCP4_PROTOCOL {EFI_TCP4_GET_MODE_DATA GetModeData;EFI_TCP4_CONFIGURE Configure;EFI_TCP4_ROUTES Routes;EFI_TCP4_CONNECT Connect;EFI_TCP4_ACCEPT Accept;EFI_TCP4_TRANSMIT Transmit;EFI_TCP4_RECEIVE Receive;EFI_TCP4_CLOSE Close;EFI_TCP4_CANCEL Cancel;EFI_TCP4_POLL Poll;
} EFI_TCP4_PROTOCOL;

52. EFI_IP4_SERVICE_BINDING_PROTOCOL

用于定位EFI IPv4协议驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI IPv4协议子协议驱动程序的实例。

53. EFI_IP4_PROTOCOL

实现了一个简单的面向数据包的接口,驱动程序、守护程序和应用程序可以使用该接口来发送和接收网络数据包。

typedef struct _EFI_IP4_PROTOCOL {EFI_IP4_GET_MODE_DATA GetModeData;EFI_IP4_CONFIGURE Configure;EFI_IP4_GROUPS Groups;EFI_IP4_ROUTES Routes;EFI_IP4_TRANSMIT Transmit;EFI_IP4_RECEIVE Receive;EFI_IP4_CANCEL Cancel;EFI_IP4_POLL Poll;
} EFI_IP4_PROTOCOL;

54. EFI_IP4_CONFIG2_PROTOCOL

提供为EFI IPv4网络堆栈设置和获取各种类型配置的机制。

typedef struct _EFI_IP4_CONFIG2_PROTOCOL {EFI_IP4_CONFIG2_SET_DATA SetData;EFI_IP4_CONFIG2_GET_DATA GetData;EFI_IP4_CONFIG2_REGISTER_NOTIFY RegisterDataNotify;EFI_IP4_CONFIG2_UNREGISTER_NOTIFY UnregisterDataNotify;
} EFI_IP4_CONFIG2_PROTOCOL;

55. EFI_UDP4_SERVICE_BINDING_PROTOCOL

用于定位由EFI UDPv4协议驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI UDPv4协议子协议驱动程序的实例。

56. EFI_UDP4_PROTOCOL

提供简单的面向数据包的服务来发送和接收UDP数据包。

typedef struct _EFI_UDP4_PROTOCOL {EFI_UDP4_GET_MODE_DATA GetModeData;EFI_UDP4_CONFIGURE Configure;EFI_UDP4_GROUPS Groups;EFI_UDP4_ROUTES Routes;EFI_UDP4_TRANSMIT Transmit;EFI_UDP4_RECEIVE Receive;EFI_UDP4_CANCEL Cancel;EFI_UDP4_POLL Poll;
} EFI_UDP4_PROTOCOL;

57. EFI_MTFTP4_SERVICE_BINDING_PROTOCOL

用于定位EFI MTFTPv4协议(Multicast Trivial FTP)驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI MTFTPv4协议子协议驱动程序的实例。

58. EFI_MTFTP4_PROTOCOL

为客户端单播和/或多播TFTP操作提供基本服务。

typedef struct _EFI_MTFTP4_PROTOCOL {EFI_MTFTP4_GET_MODE_DATA GetModeData;EFI_MTFTP4_CONFIGURE Configure;EFI_MTFTP4_GET_INFO GetInfo;EFI_MTFTP4_PARSE_OPTIONS ParseOptions;EFI_MTFTP4_READ_FILE ReadFile;EFI_MTFTP4_WRITE_FILE WriteFile;EFI_MTFTP4_READ_DIRECTORY ReadDirectory;EFI_MTFTP4_POLL Poll;
} EFI_MTFTP4_PROTOCOL;

59. EFI_HASH_PROTOCOL

该协议描述了标准的散列函数。

typedef _EFI_HASH_PROTOCOL {EFI_HASH_GET_HASH_SIZE GetHashSize;EFI_HASH_HASH Hash;
} EFI_HASH_PROTOCOL;

60. EFI_HASH_SERVICE_BINDING_PROTOCOL

用于定位驱动程序提供的哈希服务支持,并创建和销毁EFI哈希协议的实例,以便多个驱动程序可以使用底层哈希服务.

61. EFI_SD_MMC_PASS_THRU_PROTOCOL

允许SD/eMMC命令被发送到SD/eMMC控制器的协议接口。

typedef struct _EFI_SD_MMC_PASS_THRU_PROTOCOL {
UINTN IoAlignEFI_SD_MMC_PASS_THRU_PASSTHRU PassThru;EFI_SD_MMC_PASS_THRU_GET_NEXT_SLOT GetNextSlot;EFI_SD_MMC_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;EFI_SD_MMC_PASS_THRU_GET_SLOT_NUMBER GetSlotNumber;EFI_SD_MMC_PASS_THRU_RESET_DEVICE ResetDevice;
} EFI_SD_MMC_PASS_THRU_PROTOCOL;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【滑动窗口-1004. 最大连续1的个数 III】
  • 基于Java+SpringBoot+Vue+MySQL的西安旅游管理系统网站
  • Windows--linux共享文件夹
  • SAP B1 学习笔记 - 易混淆字段名(持续更新中)
  • matlab数据批量保存为excel,文件名,行和列的名称设置
  • Redis面对数据量庞大处理方法
  • 基于SpringBoot的社团管理系统
  • Java实现邮箱发送功能详细步骤及注意事项?
  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用。
  • Java设计模式—面向对象设计原则(二) --------> 里氏代换原则 LSP (完整详解,附有代码+案列)
  • leetcode-647. 回文子串
  • Linux相关概念和重要知识点(2)(用户、文件和目录、inode、权限)
  • 制证书、制电子印章、签章 -- 演示程序说明
  • 关系型数据库 - MySQL I
  • 短剧市场快速发展,短剧APP成为了新的商业机遇
  • 自己简单写的 事件订阅机制
  • Angular2开发踩坑系列-生产环境编译
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Cumulo 的 ClojureScript 模块已经成型
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Just for fun——迅速写完快速排序
  • Linux后台研发超实用命令总结
  • PV统计优化设计
  • Python学习笔记 字符串拼接
  • Theano - 导数
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 前端面试总结(at, md)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (39)STM32——FLASH闪存
  • (C++)八皇后问题
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (PADS学习)第二章:原理图绘制 第一部分
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十一)图像的罗伯特梯度锐化
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)3D模板阴影原理
  • (转)EXC_BREAKPOINT僵尸错误
  • ./configure、make、make install 命令
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .Net7 环境安装配置
  • .Net下的签名与混淆
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ SNOI 2013 ] Quare
  • [<MySQL优化总结>]
  • [20161101]rman备份与数据文件变化7.txt