TianoCore EDK2 master
Loading...
Searching...
No Matches
UserManager.h
Go to the documentation of this file.
1
11#ifndef __USER_MANAGER_H__
12#define __USER_MANAGER_H__
13
17#define EFI_USER_MANAGER_PROTOCOL_GUID \
18 { \
19 0x6fd5b00c, 0xd426, 0x4283, { 0x98, 0x87, 0x6c, 0xf5, 0xcf, 0x1c, 0xb1, 0xfe } \
20 }
21
22#define EFI_EVENT_GROUP_USER_PROFILE_CHANGED \
23 { \
24 0xbaf1e6de, 0x209e, 0x4adb, { 0x8d, 0x96, 0xfd, 0x8b, 0x71, 0xf3, 0xf6, 0x83 } \
25 }
26
27typedef VOID *EFI_USER_PROFILE_HANDLE;
28typedef VOID *EFI_USER_INFO_HANDLE;
29
33typedef UINT16 EFI_USER_INFO_ATTRIBS;
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
38
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
44
48typedef struct {
57 UINT8 InfoType;
61 UINT8 Reserved1;
69 UINT32 InfoSize;
71
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 } }
87
88typedef UINT64 EFI_CREDENTIAL_CAPABILITIES;
89#define EFI_CREDENTIAL_CAPABILITIES_ENROLL 0x0000000000000001
90
95#define EFI_CREDENTIAL_LOGON_FLAG_AUTO 0x00000001
96#define EFI_CREDENTIAL_LOGON_FLAG_DEFAULT 0x00000002
97
101
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
176
177typedef struct {
178 UINT32 Type;
179 UINT32 Size;
181
183
187
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 } }
226
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;
240
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
259
263#define EFI_USER_INFO_IDENTITY_POLICY_RECORD 0x0F
264
265typedef struct {
266 UINT32 Type;
267 UINT32 Length;
269
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
280
284#define EFI_USER_INFO_GUID_RECORD 0xFF
286
291typedef struct {
292 UINT64 Size;
294
296
312typedef
316 OUT EFI_USER_PROFILE_HANDLE *User
317 );
318
331typedef
335 IN EFI_USER_PROFILE_HANDLE User
336 );
337
354typedef
358 IN OUT EFI_USER_PROFILE_HANDLE *User
359 );
360
370typedef
374 OUT EFI_USER_PROFILE_HANDLE *CurrentUser
375 );
376
393typedef
397 OUT EFI_USER_PROFILE_HANDLE *User
398 );
399
429typedef
431(EFIAPI *EFI_USER_PROFILE_FIND)(
433 IN OUT EFI_USER_PROFILE_HANDLE *User,
434 IN OUT EFI_USER_INFO_HANDLE *UserInfo OPTIONAL,
435 IN CONST EFI_USER_INFO *Info,
436 IN UINTN InfoSize
437 );
438
461typedef
465 IN EFI_HANDLE Changed
466 );
467
495typedef
499 IN EFI_USER_PROFILE_HANDLE User,
500 IN EFI_USER_INFO_HANDLE UserInfo,
501 OUT EFI_USER_INFO *Info,
502 IN OUT UINTN *InfoSize
503 );
504
535typedef
539 IN EFI_USER_PROFILE_HANDLE User,
540 IN OUT EFI_USER_INFO_HANDLE *UserInfo,
541 IN CONST EFI_USER_INFO *Info,
542 IN UINTN InfoSize
543 );
544
558typedef
562 IN EFI_USER_PROFILE_HANDLE User,
563 IN EFI_USER_INFO_HANDLE UserInfo
564 );
565
581typedef
585 IN EFI_USER_PROFILE_HANDLE User,
586 IN OUT EFI_USER_INFO_HANDLE *UserInfo
587 );
588
604};
605
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;
617
618#endif
UINT64 UINTN
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
UINT32 EFI_CREDENTIAL_LOGON_FLAGS
Definition: UserManager.h:94
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)
Definition: UserManager.h:431
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)
Definition: UserManager.h:537
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_CURRENT)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *CurrentUser)
Definition: UserManager.h:372
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_IDENTIFY)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
Definition: UserManager.h:395
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)
Definition: UserManager.h:560
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)
Definition: UserManager.h:497
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_NOTIFY)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_HANDLE Changed)
Definition: UserManager.h:463
UINT16 EFI_USER_INFO_ATTRIBS
Definition: UserManager.h:33
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)
Definition: UserManager.h:583
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_GET_NEXT)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User)
Definition: UserManager.h:356
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_CREATE)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
Definition: UserManager.h:314
EFI_STATUS(EFIAPI * EFI_USER_PROFILE_DELETE)(IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
Definition: UserManager.h:333
UINT32 Size
Specifies the size of the user access control record, in bytes, including this header.
Definition: UserManager.h:179
UINT32 Type
Specifies the type of user access control.
Definition: UserManager.h:178
UINT32 Type
Specifies either an operator or a data item.
Definition: UserManager.h:266
UINT32 Length
The length of this block, in bytes, including this header.
Definition: UserManager.h:267
UINT64 Size
Total size of the user information table, in bytes.
Definition: UserManager.h:292
EFI_USER_INFO_ATTRIBS InfoAttribs
Definition: UserManager.h:65
EFI_GUID Credential
Definition: UserManager.h:53
UINT8 InfoType
Definition: UserManager.h:57
UINT32 InfoSize
Definition: UserManager.h:69
UINT8 Reserved1
Definition: UserManager.h:61
Definition: Base.h:213