20#ifndef __EFI_FIRMWARE_MANAGEMENT_PROTOCOL_H__
21#define __EFI_FIRMWARE_MANAGEMENT_PROTOCOL_H__
23#define EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID \
25 0x86c77a67, 0xb97, 0x4633, {0xa1, 0x87, 0x49, 0x10, 0x4d, 0x6, 0x85, 0xc7 } \
33#define EFI_FMP_DEP_PUSH_GUID 0x00
34#define EFI_FMP_DEP_PUSH_VERSION 0x01
35#define EFI_FMP_DEP_VERSION_STR 0x02
36#define EFI_FMP_DEP_AND 0x03
37#define EFI_FMP_DEP_OR 0x04
38#define EFI_FMP_DEP_NOT 0x05
39#define EFI_FMP_DEP_TRUE 0x06
40#define EFI_FMP_DEP_FALSE 0x07
41#define EFI_FMP_DEP_EQ 0x08
42#define EFI_FMP_DEP_GT 0x09
43#define EFI_FMP_DEP_GTE 0x0A
44#define EFI_FMP_DEP_LT 0x0B
45#define EFI_FMP_DEP_LTE 0x0C
46#define EFI_FMP_DEP_END 0x0D
52 UINT8 Dependencies[1];
148#define IMAGE_ATTRIBUTE_IMAGE_UPDATABLE 0x0000000000000001
154#define IMAGE_ATTRIBUTE_RESET_REQUIRED 0x0000000000000002
160#define IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED 0x0000000000000004
165#define IMAGE_ATTRIBUTE_IN_USE 0x0000000000000008
169#define IMAGE_ATTRIBUTE_UEFI_IMAGE 0x0000000000000010
174#define IMAGE_ATTRIBUTE_DEPENDENCY 0x0000000000000020
184#define IMAGE_COMPATIBILITY_CHECK_SUPPORTED 0x0000000000000001
189#define EFI_FIRMWARE_IMAGE_DESCRIPTOR_VERSION 4
219#define IMAGE_UPDATABLE_VALID 0x0000000000000001
224#define IMAGE_UPDATABLE_INVALID 0x0000000000000002
229#define IMAGE_UPDATABLE_INVALID_TYPE 0x0000000000000004
236#define IMAGE_UPDATABLE_INVALID_OLD 0x0000000000000008
242#define IMAGE_UPDATABLE_VALID_WITH_VENDOR_CODE 0x0000000000000010
251#define PACKAGE_ATTRIBUTE_VERSION_UPDATABLE 0x0000000000000001
256#define PACKAGE_ATTRIBUTE_RESET_REQUIRED 0x0000000000000002
261#define PACKAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED 0x0000000000000004
326 OUT UINT32 *DescriptorVersion,
327 OUT UINT8 *DescriptorCount,
329 OUT UINT32 *PackageVersion,
330 OUT CHAR16 **PackageVersionName
420 OUT CHAR16 **AbortReason
450 OUT UINT32 *ImageUpdatable
489 OUT UINT32 *PackageVersion,
490 OUT CHAR16 **PackageVersionName,
491 OUT UINT32 *PackageVersionNameMaxLen,
492 OUT UINT64 *AttributesSupported,
493 OUT UINT64 *AttributesSetting
534 IN UINT32 PackageVersion,
535 IN CONST CHAR16 *PackageVersionName
556extern EFI_GUID gEfiFirmwareManagementProtocolGuid;
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_CHECK_IMAGE)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, IN CONST VOID *Image, IN UINTN ImageSize, OUT UINT32 *ImageUpdatable)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GET_PACKAGE_INFO)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, OUT UINT32 *PackageVersion, OUT CHAR16 **PackageVersionName, OUT UINT32 *PackageVersionNameMaxLen, OUT UINT64 *AttributesSupported, OUT UINT64 *AttributesSetting)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_SET_IMAGE)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, IN CONST VOID *Image, IN UINTN ImageSize, IN CONST VOID *VendorCode, IN EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS Progress, OUT CHAR16 **AbortReason)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GET_IMAGE_INFO)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN OUT UINTN *ImageInfoSize, IN OUT EFI_FIRMWARE_IMAGE_DESCRIPTOR *ImageInfo, OUT UINT32 *DescriptorVersion, OUT UINT8 *DescriptorCount, OUT UINTN *DescriptorSize, OUT UINT32 *PackageVersion, OUT CHAR16 **PackageVersionName)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_SET_PACKAGE_INFO)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN CONST VOID *Image, IN UINTN ImageSize, IN CONST VOID *VendorCode, IN UINT32 PackageVersion, IN CONST CHAR16 *PackageVersionName)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GET_IMAGE)(IN EFI_FIRMWARE_MANAGEMENT_PROTOCOL *This, IN UINT8 ImageIndex, OUT VOID *Image, IN OUT UINTN *ImageSize)
EFI_STATUS(EFIAPI * EFI_FIRMWARE_MANAGEMENT_UPDATE_IMAGE_PROGRESS)(IN UINTN Completion)
WIN_CERTIFICATE_UEFI_GUID AuthInfo
UINT64 AttributesSupported
UINT32 LastAttemptVersion
UINT32 LowestSupportedImageVersion