11#ifndef __USER_MANAGER_H__
12#define __USER_MANAGER_H__
17#define EFI_USER_MANAGER_PROTOCOL_GUID \
19 0x6fd5b00c, 0xd426, 0x4283, { 0x98, 0x87, 0x6c, 0xf5, 0xcf, 0x1c, 0xb1, 0xfe } \
22#define EFI_EVENT_GROUP_USER_PROFILE_CHANGED \
24 0xbaf1e6de, 0x209e, 0x4adb, { 0x8d, 0x96, 0xfd, 0x8b, 0x71, 0xf3, 0xf6, 0x83 } \
27typedef VOID *EFI_USER_PROFILE_HANDLE;
28typedef VOID *EFI_USER_INFO_HANDLE;
34#define EFI_USER_INFO_STORAGE 0x000F
35#define EFI_USER_INFO_STORAGE_VOLATILE 0x0000
36#define EFI_USER_INFO_STORAGE_CREDENTIAL_NV 0x0001
37#define EFI_USER_INFO_STORAGE_PLATFORM_NV 0x0002
39#define EFI_USER_INFO_ACCESS 0x0070
40#define EFI_USER_INFO_PUBLIC 0x0010
41#define EFI_USER_INFO_PRIVATE 0x0020
42#define EFI_USER_INFO_PROTECTED 0x0030
43#define EFI_USER_INFO_EXCLUSIVE 0x0080
75#define EFI_USER_CREDENTIAL_CLASS_UNKNOWN \
76 { 0x5cf32e68, 0x7660, 0x449b, { 0x80, 0xe6, 0x7e, 0xa3, 0x6e, 0x3, 0xf6, 0xa8 } }
77#define EFI_USER_CREDENTIAL_CLASS_PASSWORD \
78 { 0xf8e5058c, 0xccb6, 0x4714, { 0xb2, 0x20, 0x3f, 0x7e, 0x3a, 0x64, 0xb, 0xd1 } }
79#define EFI_USER_CREDENTIAL_CLASS_SMART_CARD \
80 { 0x5f03ba33, 0x8c6b, 0x4c24, { 0xaa, 0x2e, 0x14, 0xa2, 0x65, 0x7b, 0xd4, 0x54 } }
81#define EFI_USER_CREDENTIAL_CLASS_FINGERPRINT \
82 { 0x32cba21f, 0xf308, 0x4cbc, { 0x9a, 0xb5, 0xf5, 0xa3, 0x69, 0x9f, 0x4, 0x4a } }
83#define EFI_USER_CREDENTIAL_CLASS_HANDPRINT \
84 { 0x5917ef16, 0xf723, 0x4bb9, { 0xa6, 0x4b, 0xd8, 0xc5, 0x32, 0xf4, 0xd8, 0xb5 } }
85#define EFI_USER_CREDENTIAL_CLASS_SECURE_CARD \
86 { 0x8a6b4a83, 0x42fe, 0x45d2, { 0xa2, 0xef, 0x46, 0xf0, 0x6c, 0x7d, 0x98, 0x52 } }
88typedef UINT64 EFI_CREDENTIAL_CAPABILITIES;
89#define EFI_CREDENTIAL_CAPABILITIES_ENROLL 0x0000000000000001
95#define EFI_CREDENTIAL_LOGON_FLAG_AUTO 0x00000001
96#define EFI_CREDENTIAL_LOGON_FLAG_DEFAULT 0x00000002
105#define EFI_USER_INFO_EMPTY_RECORD 0x00
109#define EFI_USER_INFO_NAME_RECORD 0x01
110typedef CHAR16 *EFI_USER_INFO_NAME;
114#define EFI_USER_INFO_CREATE_DATE_RECORD 0x02
119#define EFI_USER_INFO_USAGE_DATE_RECORD 0x03
124#define EFI_USER_INFO_USAGE_COUNT_RECORD 0x04
125typedef UINT64 EFI_USER_INFO_USAGE_COUNT;
129#define EFI_USER_INFO_IDENTIFIER_RECORD 0x05
130typedef UINT8 EFI_USER_INFO_IDENTIFIER[16];
134#define EFI_USER_INFO_CREDENTIAL_TYPE_RECORD 0x06
139#define EFI_USER_INFO_CREDENTIAL_TYPE_NAME_RECORD 0x07
140typedef CHAR16 *EFI_USER_INFO_CREDENTIAL_TYPE_NAME;
144#define EFI_USER_INFO_CREDENTIAL_PROVIDER_RECORD 0x08
149#define EFI_USER_INFO_CREDENTIAL_PROVIDER_NAME_RECORD 0x09
150typedef CHAR16 *EFI_USER_INFO_CREDENTIAL_PROVIDER_NAME;
154#define EFI_USER_INFO_PKCS11_RECORD 0x0A
159#define EFI_USER_INFO_CBEFF_RECORD 0x0B
160typedef VOID *EFI_USER_INFO_CBEFF;
164#define EFI_USER_INFO_FAR_RECORD 0x0C
165typedef UINT8 EFI_USER_INFO_FAR;
170#define EFI_USER_INFO_RETRY_RECORD 0x0D
171typedef UINT8 EFI_USER_INFO_RETRY;
175#define EFI_USER_INFO_ACCESS_POLICY_RECORD 0x0E
192#define EFI_USER_INFO_ACCESS_FORBID_LOAD 0x00000001
200#define EFI_USER_INFO_ACCESS_PERMIT_LOAD 0x00000002
204#define EFI_USER_INFO_ACCESS_ENROLL_SELF 0x00000003
208#define EFI_USER_INFO_ACCESS_ENROLL_OTHERS 0x00000004
212#define EFI_USER_INFO_ACCESS_MANAGE 0x00000005
216#define EFI_USER_INFO_ACCESS_SETUP 0x00000006
220#define EFI_USER_INFO_ACCESS_SETUP_ADMIN_GUID \
221 { 0x85b75607, 0xf7ce, 0x471e, { 0xb7, 0xe4, 0x2a, 0xea, 0x5f, 0x72, 0x32, 0xee } }
222#define EFI_USER_INFO_ACCESS_SETUP_NORMAL_GUID \
223 { 0x1db29ae0, 0x9dcb, 0x43bc, { 0x8d, 0x87, 0x5d, 0xa1, 0x49, 0x64, 0xdd, 0xe2 } }
224#define EFI_USER_INFO_ACCESS_SETUP_RESTRICTED_GUID \
225 { 0xbdb38125, 0x4d63, 0x49f4, { 0x82, 0x12, 0x61, 0xcf, 0x5a, 0x19, 0xa, 0xf8 } }
230#define EFI_USER_INFO_ACCESS_FORBID_CONNECT 0x00000007
234#define EFI_USER_INFO_ACCESS_PERMIT_CONNECT 0x00000008
238#define EFI_USER_INFO_ACCESS_BOOT_ORDER 0x00000009
239typedef UINT32 EFI_USER_INFO_ACCESS_BOOT_ORDER_HDR;
241#define EFI_USER_INFO_ACCESS_BOOT_ORDER_MASK 0x0000000F
245#define EFI_USER_INFO_ACCESS_BOOT_ORDER_INSERT 0x00000000
249#define EFI_USER_INFO_ACCESS_BOOT_ORDER_APPEND 0x00000001
253#define EFI_USER_INFO_ACCESS_BOOT_ORDER_REPLACE 0x00000002
258#define EFI_USER_INFO_ACCESS_BOOT_ORDER_NODEFAULT 0x00000010
263#define EFI_USER_INFO_IDENTITY_POLICY_RECORD 0x0F
273#define EFI_USER_INFO_IDENTITY_FALSE 0x00
274#define EFI_USER_INFO_IDENTITY_TRUE 0x01
275#define EFI_USER_INFO_IDENTITY_CREDENTIAL_TYPE 0x02
276#define EFI_USER_INFO_IDENTITY_CREDENTIAL_PROVIDER 0x03
277#define EFI_USER_INFO_IDENTITY_NOT 0x10
278#define EFI_USER_INFO_IDENTITY_AND 0x11
279#define EFI_USER_INFO_IDENTITY_OR 0x12
284#define EFI_USER_INFO_GUID_RECORD 0xFF
316 OUT EFI_USER_PROFILE_HANDLE *User
335 IN EFI_USER_PROFILE_HANDLE User
358 IN OUT EFI_USER_PROFILE_HANDLE *User
374 OUT EFI_USER_PROFILE_HANDLE *CurrentUser
397 OUT EFI_USER_PROFILE_HANDLE *User
433 IN OUT EFI_USER_PROFILE_HANDLE *User,
499 IN EFI_USER_PROFILE_HANDLE User,
500 IN EFI_USER_INFO_HANDLE UserInfo,
539 IN EFI_USER_PROFILE_HANDLE User,
540 IN OUT EFI_USER_INFO_HANDLE *UserInfo,
562 IN EFI_USER_PROFILE_HANDLE User,
563 IN EFI_USER_INFO_HANDLE UserInfo
585 IN EFI_USER_PROFILE_HANDLE User,
586 IN OUT EFI_USER_INFO_HANDLE *UserInfo
606extern EFI_GUID gEfiUserManagerProtocolGuid;
607extern EFI_GUID gEfiEventUserProfileChangedGuid;
608extern EFI_GUID gEfiUserCredentialClassUnknownGuid;
609extern EFI_GUID gEfiUserCredentialClassPasswordGuid;
610extern EFI_GUID gEfiUserCredentialClassSmartCardGuid;
611extern EFI_GUID gEfiUserCredentialClassFingerprintGuid;
612extern EFI_GUID gEfiUserCredentialClassHandprintGuid;
613extern EFI_GUID gEfiUserCredentialClassSecureCardGuid;
614extern EFI_GUID gEfiUserInfoAccessSetupAdminGuid;
615extern EFI_GUID gEfiUserInfoAccessSetupNormalGuid;
616extern EFI_GUID gEfiUserInfoAccessSetupRestrictedGuid;
UINT32 EFI_CREDENTIAL_LOGON_FLAGS
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_FIND)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User, IN OUT EFI_USER_INFO_HANDLE *UserInfo OPTIONAL, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_SET_INFO)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_CURRENT)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *CurrentUser)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_IDENTIFY)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_DELETE_INFO)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_GET_INFO)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_NOTIFY)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_HANDLE Changed)
UINT16 EFI_USER_INFO_ATTRIBS
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_GET_NEXT_INFO)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_GET_NEXT)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_CREATE)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_DELETE)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
UINT32 Size
Specifies the size of the user access control record, in bytes, including this header.
UINT32 Type
Specifies the type of user access control.
UINT32 Type
Specifies either an operator or a data item.
UINT32 Length
The length of this block, in bytes, including this header.
UINT64 Size
Total size of the user information table, in bytes.
EFI_USER_INFO_ATTRIBS InfoAttribs