Functions | |
EFI_STATUS | FindUserProfile (IN OUT USER_PROFILE_ENTRY **User, IN BOOLEAN NextUser, OUT UINTN *ProfileIndex) |
EFI_STATUS | FindUserInfo (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **Info, IN BOOLEAN NextInfo, OUT UINTN *Offset) |
EFI_STATUS | FindUserInfoByType (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **Info, IN UINT8 InfoType) |
EFI_STATUS | FindUserProfileByInfo (IN OUT USER_PROFILE_ENTRY **User, IN OUT EFI_USER_INFO **UserInfo, IN EFI_USER_INFO *Info, IN UINTN InfoSize) |
BOOLEAN | CheckAccessPolicy (IN UINT8 *PolicyInfo, IN UINTN InfoLen) |
BOOLEAN | CheckIdentityPolicy (IN UINT8 *PolicyInfo, IN UINTN InfoLen) |
BOOLEAN | CheckUserInfo (IN CONST EFI_USER_INFO *Info) |
BOOLEAN | CheckProfileInfo (IN UINT8 *UserProfileInfo, IN UINTN UserProfileSize) |
BOOLEAN | CheckCurrentUserAccessRight (IN UINT32 RightType) |
VOID | GenerateIdentifier (OUT UINT8 *Identifier) |
VOID | GenerateUserId (OUT UINT8 *UserId) |
BOOLEAN | ExpandUsermUserProfileDb (VOID) |
BOOLEAN | ExpandUserProfile (IN USER_PROFILE_ENTRY *User, IN UINTN ExpandSize) |
EFI_STATUS | SaveNvUserProfile (IN USER_PROFILE_ENTRY *User, IN BOOLEAN Delete) |
EFI_STATUS | AddUserInfo (IN USER_PROFILE_ENTRY *User, IN UINT8 *Info, IN UINTN InfoSize, OUT EFI_USER_INFO **UserInfo, IN BOOLEAN Save) |
EFI_STATUS | GetUserInfo (IN USER_PROFILE_ENTRY *User, IN EFI_USER_INFO *UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize, IN BOOLEAN ChkRight) |
EFI_STATUS | DelUserInfo (IN USER_PROFILE_ENTRY *User, IN EFI_USER_INFO *Info, IN BOOLEAN Save) |
EFI_STATUS | ModifyUserInfo (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize) |
EFI_STATUS | DelUserProfile (IN USER_PROFILE_ENTRY *User) |
EFI_STATUS | AddUserProfile (OUT USER_PROFILE_ENTRY **UserProfile, IN UINTN ProfileSize, IN UINT8 *ProfileInfo, IN BOOLEAN Save) |
EFI_STATUS | CreateUserProfile (OUT USER_PROFILE_ENTRY **User) |
EFI_STATUS | AddDefaultUserProfile (VOID) |
EFI_STATUS | PublishUserTable (VOID) |
EFI_STATUS | GetIdentifyType (IN EFI_USER_PROFILE_HANDLE User, OUT UINT8 *PolicyType) |
EFI_STATUS | IdentifyByProviderId (IN EFI_USER_PROFILE_HANDLE User, IN EFI_GUID *Provider) |
EFI_STATUS | UpdateUserInfo (IN USER_PROFILE_ENTRY *User) |
VOID | AddProviderSelection (IN EFI_GUID *ProviderGuid, IN VOID *OpCodeHandle) |
EFI_STATUS | AddUserSelection (IN UINT16 Index, IN USER_PROFILE_ENTRY *User, IN VOID *OpCodeHandle) |
EFI_STATUS | IdentifyAndTypeUser (IN USER_PROFILE_ENTRY *User) |
EFI_STATUS | IdentifyOrTypeUser (IN USER_PROFILE_ENTRY *User) |
EFI_STATUS EFIAPI | UserIdentifyManagerCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest) |
EFI_STATUS | InitUserProfileDb (VOID) |
EFI_STATUS | InitProviderInfo (VOID) |
EFI_STATUS EFIAPI | FakeExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results) |
EFI_STATUS EFIAPI | FakeRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress) |
EFI_STATUS | InitFormBrowser (VOID) |
EFI_STATUS | IdentifyAutoLogonUser (IN UINTN ProviderIndex, OUT USER_PROFILE_ENTRY **User) |
BOOLEAN | CheckConsole (EFI_GUID *ProtocolGuid) |
BOOLEAN | IsConsoleReady (VOID) |
EFI_STATUS | IdentifyUser (OUT USER_PROFILE_ENTRY **User) |
VOID EFIAPI | InternalEmptyFuntion (IN EFI_EVENT Event, IN VOID *Context) |
VOID | SignalEventUserProfileChanged (VOID) |
EFI_STATUS EFIAPI | UserProfileCreate (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User) |
EFI_STATUS EFIAPI | UserProfileDelete (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User) |
EFI_STATUS EFIAPI | UserProfileGetNext (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User) |
EFI_STATUS EFIAPI | UserProfileCurrent (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *CurrentUser) |
EFI_STATUS EFIAPI | UserProfileIdentify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User) |
EFI_STATUS EFIAPI | UserProfileFind (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize) |
EFI_STATUS EFIAPI | UserProfileGetInfo (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 | UserProfileSetInfo (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 | UserProfileNotify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_HANDLE Changed) |
EFI_STATUS EFIAPI | UserProfileDeleteInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo) |
EFI_STATUS EFIAPI | UserProfileGetNextInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo) |
EFI_STATUS EFIAPI | UserIdentifyManagerInit (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
Variables | |
CHAR16 | mUserName [] = L"Administrator" |
USER_PROFILE_DB * | mUserProfileDb = NULL |
CREDENTIAL_PROVIDER_INFO * | mProviderDb = NULL |
EFI_USER_PROFILE_HANDLE | mCurrentUser = NULL |
BOOLEAN | mIdentified = FALSE |
USER_MANAGER_CALLBACK_INFO * | mCallbackInfo = NULL |
HII_VENDOR_DEVICE_PATH | mHiiVendorDevicePath |
EFI_USER_MANAGER_PROTOCOL | gUserIdentifyManager |
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
EFI_STATUS AddDefaultUserProfile | ( | VOID | ) |
Add a default user profile to user profile database.
EFI_SUCCESS | A default user profile is added successfully. | |
Others | Fail to add a default user profile |
References CreateUserProfile(), EFI_STATUS(), INFO_PAYLOAD_SIZE, ModifyUserInfo(), and mUserName.
Referenced by InitUserProfileDb().
VOID AddProviderSelection | ( | IN EFI_GUID * | ProviderGuid, | |
IN VOID * | OpCodeHandle | |||
) |
Add a credenetial provider item in form.
[in] | ProviderGuid | Points to the identifir of credential provider. |
[in] | OpCodeHandle | Points to container for dynamic created opcodes. |
References CREDENTIAL_PROVIDER_INFO::Count, USER_MANAGER_CALLBACK_INFO::HiiHandle, LABEL_PROVIDER_NAME, CREDENTIAL_PROVIDER_INFO::Provider, and UINTN().
Referenced by IdentifyOrTypeUser().
EFI_STATUS AddUserInfo | ( | IN USER_PROFILE_ENTRY * | User, | |
IN UINT8 * | Info, | |||
IN UINTN | InfoSize, | |||
OUT EFI_USER_INFO ** | UserInfo, | |||
IN BOOLEAN | Save | |||
) |
Add one new user info into the user's profile.
[in] | User | point to the user profile |
[in] | Info | Points to the user information payload. |
[in] | InfoSize | The size of the user information payload, in bytes. |
[out] | UserInfo | Point to the new info in user profile |
[in] | Save | If TRUE, save the profile to NV flash. If FALSE, don't need to save the profile to NV flash. |
EFI_SUCCESS | Add user info to user profile successfully. | |
Others | Fail to add user info to user profile. |
References EFI_STATUS(), ExpandUserProfile(), FindUserProfile(), and SaveNvUserProfile().
Referenced by AddUserProfile(), and ModifyUserInfo().
EFI_STATUS AddUserProfile | ( | OUT USER_PROFILE_ENTRY ** | UserProfile, | |
IN UINTN | ProfileSize, | |||
IN UINT8 * | ProfileInfo, | |||
IN BOOLEAN | Save | |||
) |
Add user profile to user profile database.
[out] | UserProfile | Point to the newly added user profile. |
[in] | ProfileSize | The size of the user profile. |
[in] | ProfileInfo | Point to the user profie data. |
[in] | Save | If TRUE, save the new added profile to NV flash. If FALSE, don't save the profile to NV flash. |
EFI_SUCCESS | Add user profile to user profile database successfully. | |
Others | Fail to add user profile to user profile database. |
References AddUserInfo(), CheckProfileInfo(), DelUserProfile(), EFI_STATUS(), ExpandUsermUserProfileDb(), USER_PROFILE_DB::MaxProfileNum, USER_PROFILE_ENTRY::MaxProfileSize, USER_PROFILE_ENTRY::ProfileInfo, USER_PROFILE_DB::UserProfile, USER_PROFILE_DB::UserProfileNum, USER_PROFILE_ENTRY::UserProfileSize, and USER_PROFILE_ENTRY::UserVarName.
Referenced by CreateUserProfile(), and InitUserProfileDb().
EFI_STATUS AddUserSelection | ( | IN UINT16 | Index, | |
IN USER_PROFILE_ENTRY * | User, | |||
IN VOID * | OpCodeHandle | |||
) |
Add a username item in form.
[in] | Index | The index of the user in the user name list. |
[in] | User | Points to the user profile whose username is added. |
[in] | OpCodeHandle | Points to container for dynamic created opcodes. |
EFI_SUCCESS | Add a username successfully. | |
Others | Fail to add a username. |
References EFI_STATUS(), FindUserInfoByType(), FORMID_PROVIDER_FORM, and USER_MANAGER_CALLBACK_INFO::HiiHandle.
Referenced by UserIdentifyManagerCallback().
BOOLEAN CheckAccessPolicy | ( | IN UINT8 * | PolicyInfo, | |
IN UINTN | InfoLen | |||
) |
Check whether the access policy is valid.
[in] | PolicyInfo | Point to the access policy. |
[in] | InfoLen | The policy length. |
TRUE | The policy is a valid access policy. | |
FALSE | The access policy is not a valid access policy. |
Referenced by CheckUserInfo().
BOOLEAN CheckConsole | ( | EFI_GUID * | ProtocolGuid | ) |
Check whether the given console is ready.
[in] | ProtocolGuid | Points to the protocol guid of sonsole . |
TRUE | The given console is ready. | |
FALSE | The given console is not ready. |
References EFI_STATUS(), TRUE, and UINTN().
Referenced by IsConsoleReady().
BOOLEAN CheckCurrentUserAccessRight | ( | IN UINT32 | RightType | ) |
Find the specified RightType in current user profile.
[in] | RightType | Could be EFI_USER_INFO_ACCESS_MANAGE, EFI_USER_INFO_ACCESS_ENROLL_OTHERS or EFI_USER_INFO_ACCESS_ENROLL_SELF. |
TRUE | Find the specified RightType in current user profile. | |
FALSE | Can't find the right in the profile. |
References EFI_STATUS(), FindUserInfoByType(), mCurrentUser, TRUE, and UINTN().
Referenced by UserProfileCreate(), UserProfileDelete(), UserProfileDeleteInfo(), and UserProfileSetInfo().
BOOLEAN CheckIdentityPolicy | ( | IN UINT8 * | PolicyInfo, | |
IN UINTN | InfoLen | |||
) |
Check whether the identity policy is valid.
[in] | PolicyInfo | Point to the identity policy. |
[in] | InfoLen | The policy length. |
TRUE | The policy is a valid identity policy. | |
FALSE | The access policy is not a valid identity policy. |
Referenced by CheckUserInfo().
BOOLEAN CheckProfileInfo | ( | IN UINT8 * | UserProfileInfo, | |
IN UINTN | UserProfileSize | |||
) |
Check the user profile data format to be added.
[in] | UserProfileInfo | Points to the user profile data. |
[in] | UserProfileSize | The length of user profile data. |
TRUE | It is a valid user profile. | |
FALSE | It is not a valid user profile. |
References CheckUserInfo(), TRUE, and UINTN().
Referenced by AddUserProfile().
BOOLEAN CheckUserInfo | ( | IN CONST EFI_USER_INFO * | Info | ) |
Check whether the user information is a valid user information record.
[in] | Info | points to the user information. |
TRUE | The info is a valid user information record. | |
FALSE | The info is not a valid user information record. |
References CheckAccessPolicy(), CheckIdentityPolicy(), TRUE, and UINTN().
Referenced by CheckProfileInfo(), and ModifyUserInfo().
EFI_STATUS CreateUserProfile | ( | OUT USER_PROFILE_ENTRY ** | User | ) |
This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.
[out] | User | Handle of a new user profile. |
EFI_SUCCESS | User profile was successfully created. | |
Others | Fail to create user profile |
References AddUserProfile(), EFI_STATUS(), GenerateUserId(), and TRUE.
Referenced by AddDefaultUserProfile(), and UserProfileCreate().
EFI_STATUS DelUserInfo | ( | IN USER_PROFILE_ENTRY * | User, | |
IN EFI_USER_INFO * | Info, | |||
IN BOOLEAN | Save | |||
) |
Delete the specified user information from user profile.
[in] | User | Point to the user profile. |
[in] | Info | Point to the user information record to delete. |
[in] | Save | If TRUE, save the profile to NV flash. If FALSE, don't need to save the profile to NV flash. |
EFI_SUCCESS | Delete user info from user profile successfully. | |
Others | Fail to delete user info from user profile. |
References EFI_STATUS(), FindUserInfo(), SaveNvUserProfile(), and UINTN().
Referenced by ModifyUserInfo(), and UserProfileDeleteInfo().
EFI_STATUS DelUserProfile | ( | IN USER_PROFILE_ENTRY * | User | ) |
Delete the user profile from non-volatile memory and database.
[in] | User | Points to the user profile. |
EFI_SUCCESS | Delete user from the user profile successfully. | |
Others | Fail to delete user from user profile |
References EFI_STATUS(), FindUserProfile(), mCurrentUser, SaveNvUserProfile(), TRUE, UINTN(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by AddUserProfile(), and UserProfileDelete().
BOOLEAN ExpandUsermUserProfileDb | ( | VOID | ) |
Expand user profile database.
TRUE | Success to expand user profile database. | |
FALSE | Fail to expand user profile database. |
References USER_PROFILE_DB::MaxProfileNum, TRUE, UINTN(), USER_NUMBER_INC, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by AddUserProfile(), and InitUserProfileDb().
BOOLEAN ExpandUserProfile | ( | IN USER_PROFILE_ENTRY * | User, | |
IN UINTN | ExpandSize | |||
) |
Expand user profile
[in] | User | Points to user profile. |
[in] | ExpandSize | The size of user profile. |
TRUE | Success to expand user profile size. | |
FALSE | Fail to expand user profile size. |
Referenced by AddUserInfo().
EFI_STATUS EFIAPI FakeExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This, | |
IN CONST EFI_STRING | Request, | |||
OUT EFI_STRING * | Progress, | |||
OUT EFI_STRING * | Results | |||
) |
This function allows a caller to extract the current configuration for one or more named elements from the target driver.
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. | |
Request | A null-terminated Unicode string in <ConfigRequest> format. | |
Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful. | |
Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function. |
EFI_SUCCESS | The Results is filled with the requested values. | |
EFI_OUT_OF_RESOURCES | Not enough memory to store the results. | |
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name. | |
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver. |
EFI_STATUS EFIAPI FakeRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This, | |
IN CONST EFI_STRING | Configuration, | |||
OUT EFI_STRING * | Progress | |||
) |
This function processes the results of changes in configuration.
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. | |
Configuration | A null-terminated Unicode string in <ConfigResp> format. | |
Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful. |
EFI_SUCCESS | The Results is processed successfully. | |
EFI_INVALID_PARAMETER | Configuration is NULL. | |
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver. |
EFI_STATUS FindUserInfo | ( | IN USER_PROFILE_ENTRY * | User, | |
IN OUT EFI_USER_INFO ** | Info, | |||
IN BOOLEAN | NextInfo, | |||
OUT UINTN * | Offset | |||
) |
Find the specified user information record in the specified User profile.
This function searches the specified user information record from the beginning of the user profile. And if NextInfo is TRUE, return the next info in the user profile.
[in] | User | Points to the user profile entry. |
[in,out] | Info | On entry, points to the user information record or NULL to start searching with the first user information record. On return, points to the user information record or NULL if not found. |
[in] | NextInfo | If FALSE, find the user information record in profile specifyed by User. If TRUE, find the next user information record in profile specifyed by User. |
[out] | Offset | A pointer to the offset of the information record in the user profile. |
EFI_INVALID_PARAMETER | Info is NULL | |
EFI_NOT_FOUND | Info was not found, or the next Info was not found. | |
EFI_SUCCESS | Info or the next info are found in user profile. |
References EFI_STATUS(), FindUserProfile(), and UINTN().
Referenced by DelUserInfo(), FindUserInfoByType(), GetUserInfo(), and UserProfileGetNextInfo().
EFI_STATUS FindUserInfoByType | ( | IN USER_PROFILE_ENTRY * | User, | |
IN OUT EFI_USER_INFO ** | Info, | |||
IN UINT8 | InfoType | |||
) |
Find a user infomation record by the information record type.
This function searches all user information records of User. The search starts with the user information record following Info and continues until either the information is found or there are no more user infomation record. A match occurs when a Info.InfoType field matches the user information record type.
[in] | User | Points to the user profile record to search. |
[in,out] | Info | On entry, points to the user information record or NULL to start searching with the first user information record. On return, points to the user information record or NULL if not found. |
[in] | InfoType | The infomation type to be searched. |
EFI_SUCCESS | User information was found. Info points to the user information record. | |
EFI_NOT_FOUND | User information was not found. | |
EFI_INVALID_PARAMETER | User is NULL or Info is NULL. |
References EFI_STATUS(), FindUserInfo(), FindUserProfile(), TRUE, and UINTN().
EFI_STATUS FindUserProfile | ( | IN OUT USER_PROFILE_ENTRY ** | User, | |
IN BOOLEAN | NextUser, | |||
OUT UINTN * | ProfileIndex | |||
) |
Find the specified user in the user database.
This function searches the specified user from the beginning of the user database. And if NextUser is TRUE, return the next User in the user database.
[in,out] | User | On entry, points to the user profile entry to search. On return, points to the user profile entry or NULL if not found. |
[in] | NextUser | If FALSE, find the user in user profile database specifyed by User If TRUE, find the next user in user profile database specifyed by User. |
[out] | ProfileIndex | A pointer to the index of user profile database that matches the user specifyed by User. |
EFI_NOT_FOUND | User was NULL, or User was not found, or the next user was not found. | |
EFI_SUCCESS | User or the next user are found in user profile database |
References UINTN(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by AddUserInfo(), DelUserProfile(), FindUserInfo(), FindUserInfoByType(), FindUserProfileByInfo(), SaveNvUserProfile(), and UserProfileGetNext().
EFI_STATUS FindUserProfileByInfo | ( | IN OUT USER_PROFILE_ENTRY ** | User, | |
IN OUT EFI_USER_INFO ** | UserInfo, | |||
IN EFI_USER_INFO * | Info, | |||
IN UINTN | InfoSize | |||
) |
Find a user using a user information record.
This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info passed the EFI_USER_INFO header.
[in,out] | User | On entry, points to the previously returned user profile record, or NULL to start searching with the first user profile. On return, points to the user profile entry, or NULL if not found. |
[in,out] | UserInfo | On entry, points to the previously returned user information record, or NULL to start searching with the first. On return, points to the user information record, or NULL if not found. |
[in] | Info | Points to the buffer containing the user information to be compared to the user information record. |
[in] | InfoSize | The size of Info, in bytes. Same as Info->InfoSize. |
EFI_SUCCESS | User information was found. User points to the user profile record, and UserInfo points to the user information record. | |
EFI_NOT_FOUND | User information was not found. | |
EFI_INVALID_PARAMETER | User is NULL; Info is NULL; or, InfoSize is too small. |
References EFI_STATUS(), FindUserInfoByType(), FindUserProfile(), TRUE, and USER_PROFILE_DB::UserProfile.
Referenced by IdentifyAutoLogonUser(), and UserProfileFind().
VOID GenerateIdentifier | ( | OUT UINT8 * | Identifier | ) |
Create a unique user identifier.
[out] | Identifier | This points to the identifier. |
References UINTN().
Referenced by GenerateUserId().
VOID GenerateUserId | ( | OUT UINT8 * | UserId | ) |
Generate unique user ID.
[out] | UserId | Points to the user identifer. |
References EFI_STATUS(), FindUserInfoByType(), GenerateIdentifier(), TRUE, UINTN(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by CreateUserProfile().
EFI_STATUS GetIdentifyType | ( | IN EFI_USER_PROFILE_HANDLE | User, | |
OUT UINT8 * | PolicyType | |||
) |
Get the user's identity type.
The identify manager only supports the identity policy in which the credential provider handles are connected by the operator 'AND' or 'OR'.
[in] | User | Handle of a user profile. |
[out] | PolicyType | Point to the identity type. |
EFI_SUCCESS | Get user's identity type successfully. | |
Others | Fail to get user's identity type. |
References EFI_STATUS(), FindUserInfoByType(), and UINTN().
Referenced by IdentifyAutoLogonUser(), and UserIdentifyManagerCallback().
EFI_STATUS GetUserInfo | ( | IN USER_PROFILE_ENTRY * | User, | |
IN EFI_USER_INFO * | UserInfo, | |||
OUT EFI_USER_INFO * | Info, | |||
IN OUT UINTN * | InfoSize, | |||
IN BOOLEAN | ChkRight | |||
) |
Get the user info from the specified user info handle.
[in] | User | Point to the user profile. |
[in] | UserInfo | Point to the user information record to get. |
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. |
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information. |
[in] | ChkRight | If TRUE, check the user info attribute. If FALSE, don't check the user info attribute. |
EFI_ACCESS_DENIED | The information cannot be accessed by the current user. | |
EFI_INVALID_PARAMETER | InfoSize is NULL or UserInfo is NULL. | |
EFI_BUFFER_TOO_SMALL | The number of bytes specified by *InfoSize is too small to hold the returned data. The actual size required is returned in *InfoSize. | |
EFI_SUCCESS | Information returned successfully. |
References EFI_STATUS(), FindUserInfo(), and mCurrentUser.
Referenced by UserProfileGetInfo().
EFI_STATUS IdentifyAndTypeUser | ( | IN USER_PROFILE_ENTRY * | User | ) |
Identify the user whose identity policy does not contain the operator 'OR'.
[in] | User | Points to the user profile. |
EFI_SUCCESS | The specified user is identified successfully. | |
Others | Fail to identify the user. |
References BOOLEAN(), EFI_STATUS(), FindUserInfoByType(), IdentifyByProviderId(), TRUE, and UINTN().
Referenced by UserIdentifyManagerCallback().
EFI_STATUS IdentifyAutoLogonUser | ( | IN UINTN | ProviderIndex, | |
OUT USER_PROFILE_ENTRY ** | User | |||
) |
Identify the user whose identification policy supports auto logon.
[in] | ProviderIndex | The provider index in the provider list. |
[out] | User | Points to user user profile if a user is identified successfully. |
EFI_SUCCESS | Identify a user with the specified provider successfully. | |
Others | Fail to identify a user. |
References EFI_STATUS(), FindUserProfileByInfo(), GetIdentifyType(), and CREDENTIAL_PROVIDER_INFO::Provider.
Referenced by IdentifyUser().
EFI_STATUS IdentifyByProviderId | ( | IN EFI_USER_PROFILE_HANDLE | User, | |
IN EFI_GUID * | Provider | |||
) |
Identify the User by the specfied provider.
[in] | User | Handle of a user profile. |
[in] | Provider | Points to the identifier of credential provider. |
EFI_INVALID_PARAMETER | Provider is NULL. | |
EFI_NOT_FOUND | Fail to identify the specified user. | |
EFI_SUCCESS | User is identified successfully. |
References CREDENTIAL_PROVIDER_INFO::Count, EFI_STATUS(), USER_MANAGER_CALLBACK_INFO::FormBrowser2, CREDENTIAL_PROVIDER_INFO::Provider, and UINTN().
Referenced by IdentifyAndTypeUser(), and UserIdentifyManagerCallback().
EFI_STATUS IdentifyOrTypeUser | ( | IN USER_PROFILE_ENTRY * | User | ) |
Identify the user whose identity policy does not contain the operator 'AND'.
[in] | User | Points to the user profile. |
EFI_SUCCESS | The specified user is identified successfully. | |
Others | Fail to identify the user. |
References AddProviderSelection(), EFI_STATUS(), FindUserInfoByType(), FORMID_PROVIDER_FORM, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, LABEL_END, LABEL_PROVIDER_NAME, and UINTN().
Referenced by UserIdentifyManagerCallback().
EFI_STATUS IdentifyUser | ( | OUT USER_PROFILE_ENTRY ** | User | ) |
Identify a user to logon.
[out] | User | Points to user user profile if a user is identified successfully. |
EFI_SUCCESS | Identify a user successfully. |
References CREDENTIAL_PROVIDER_INFO::Count, EFI_STATUS(), FindUserInfoByType(), USER_MANAGER_CALLBACK_INFO::FormBrowser2, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, IdentifyAutoLogonUser(), InitProviderInfo(), InitUserProfileDb(), IsConsoleReady(), mCurrentUser, mIdentified, CREDENTIAL_PROVIDER_INFO::Provider, UINTN(), UpdateUserInfo(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by UserProfileIdentify().
EFI_STATUS InitFormBrowser | ( | VOID | ) |
This function initialize the data mainly used in form browser.
EFI_SUCCESS | Initialize form data successfully. | |
Others | Fail to Initialize form data. |
References USER_MANAGER_CALLBACK_INFO::ConfigAccess, USER_MANAGER_CALLBACK_INFO::DriverHandle, EFI_STATUS(), FakeExtractConfig(), FakeRouteConfig(), USER_MANAGER_CALLBACK_INFO::FormBrowser2, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiDatabase, USER_MANAGER_CALLBACK_INFO::HiiHandle, USER_MANAGER_CALLBACK_INFO::HiiString, USER_MANAGER_CALLBACK_INFO::Signature, USER_MANAGER_SIGNATURE, UserIdentifyManagerCallback(), UserIdentifyManagerStrings, and UserIdentifyManagerVfrBin.
EFI_STATUS InitProviderInfo | ( | VOID | ) |
This function collects all the credential providers and saves to mProviderDb.
EFI_SUCCESS | Collect credential providers successfully. | |
Others | Fail to collect credential providers. |
References CREDENTIAL_PROVIDER_INFO::Count, EFI_STATUS(), CREDENTIAL_PROVIDER_INFO::Provider, and UINTN().
Referenced by IdentifyUser(), and UserProfileManagerCallback().
EFI_STATUS InitUserProfileDb | ( | VOID | ) |
This function construct user profile database from user data saved in the Flash. If no user is found in Flash, add one default user "administrator" in the user profile database.
EFI_SUCCESS | Init user profile database successfully. | |
Others | Fail to init user profile database. |
References AddDefaultUserProfile(), AddUserProfile(), DEFAULT_PROFILE_SIZE, EFI_STATUS(), ExpandUsermUserProfileDb(), gUserIdentifyManagerGuid, SaveNvUserProfile(), TRUE, UINTN(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by IdentifyUser().
VOID EFIAPI InternalEmptyFuntion | ( | IN EFI_EVENT | Event, | |
IN VOID * | Context | |||
) |
An empty function to pass error checking of CreateEventEx ().
Event | Event whose notification function is being invoked. | |
Context | Pointer to the notification function's context, which is implementation-dependent. |
Referenced by SignalEventUserProfileChanged().
BOOLEAN IsConsoleReady | ( | VOID | ) |
Check whether the console is ready.
TRUE | The console is ready. | |
FALSE | The console is not ready. |
References CheckConsole(), and TRUE.
Referenced by IdentifyUser().
EFI_STATUS ModifyUserInfo | ( | IN USER_PROFILE_ENTRY * | User, | |
IN OUT EFI_USER_INFO ** | UserInfo, | |||
IN CONST EFI_USER_INFO * | Info, | |||
IN UINTN | InfoSize | |||
) |
Add or update user information.
[in] | User | Point to the user profile. |
[in,out] | UserInfo | On entry, points to the user information to modify, or NULL to add a new UserInfo. On return, points to the modified user information. |
[in] | Info | Points to the new user information. |
[in] | InfoSize | The size of Info,in bytes. |
EFI_INVALID_PARAMETER | UserInfo is NULL or Info is NULL. | |
EFI_ACCESS_DENIED | The record is exclusive. | |
EFI_SUCCESS | User information was successfully changed/added. |
References AddUserInfo(), CheckUserInfo(), DelUserInfo(), EFI_STATUS(), FindUserInfoByType(), TRUE, and UINTN().
Referenced by AddDefaultUserProfile(), UpdateUserInfo(), UserProfileManagerCallback(), and UserProfileSetInfo().
EFI_STATUS PublishUserTable | ( | VOID | ) |
Publish current user information into EFI System Configuration Table.
By UEFI spec, the User Identity Manager will publish the current user profile into the EFI System Configuration Table. Currently, only the user identifier and user name are published.
EFI_SUCCESS | Current user information is published successfully. | |
Others | Fail to publish current user information |
References EFI_STATUS(), FindUserInfoByType(), and mCurrentUser.
Referenced by UserProfileIdentify().
EFI_STATUS SaveNvUserProfile | ( | IN USER_PROFILE_ENTRY * | User, | |
IN BOOLEAN | Delete | |||
) |
Save the user profile to non-volatile memory, or delete it from non-volatile memory.
[in] | User | Point to the user profile |
[in] | Delete | If TRUE, delete the found user profile. If FALSE, save the user profile. |
EFI_SUCCESS | Save or delete user profile successfully. | |
Others | Fail to change the profile. |
References EFI_STATUS(), FindUserProfile(), and gUserIdentifyManagerGuid.
Referenced by AddUserInfo(), DelUserInfo(), DelUserProfile(), and InitUserProfileDb().
VOID SignalEventUserProfileChanged | ( | VOID | ) |
Create, Signal, and Close the User Profile Changed event.
References EFI_STATUS(), and InternalEmptyFuntion().
Referenced by UserProfileIdentify().
EFI_STATUS UpdateUserInfo | ( | IN USER_PROFILE_ENTRY * | User | ) |
Update user information when user is logon on successfully.
[in] | User | Points to user profile. |
EFI_SUCCESS | Update user information successfully. | |
Others | Fail to update user information. |
References EFI_STATUS(), FindUserInfoByType(), ModifyUserInfo(), and UINTN().
Referenced by IdentifyUser().
EFI_STATUS EFIAPI UserIdentifyManagerCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This, | |
IN EFI_BROWSER_ACTION | Action, | |||
IN EFI_QUESTION_ID | QuestionId, | |||
IN UINT8 | Type, | |||
IN EFI_IFR_TYPE_VALUE * | Value, | |||
OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest | |||
) |
This function processes the results of changes in configuration.
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. | |
Action | Specifies the type of action taken by the browser. | |
QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect. | |
Type | The type of value for the question. | |
Value | A pointer to the data being sent to the original exporting driver. | |
ActionRequest | On return, points to the action requested by the callback function. |
EFI_SUCCESS | The callback successfully handled the action. | |
Others | Fail to handle the action. |
References AddUserSelection(), EFI_STATUS(), FORM_OPEN_QUESTION_ID, FORMID_INVALID_FORM, FORMID_USER_FORM, GetIdentifyType(), gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, IdentifyAndTypeUser(), IdentifyByProviderId(), IdentifyOrTypeUser(), LABEL_END, LABEL_PROVIDER_NAME, LABEL_USER_NAME, mCurrentUser, mIdentified, CREDENTIAL_PROVIDER_INFO::Provider, TRUE, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.
Referenced by InitFormBrowser().
EFI_STATUS EFIAPI UserIdentifyManagerInit | ( | IN EFI_HANDLE | ImageHandle, | |
IN EFI_SYSTEM_TABLE * | SystemTable | |||
) |
Main entry for this driver.
[in] | ImageHandle | Image handle this driver. |
[in] | SystemTable | Pointer to SystemTable. |
EFI_SUCESS | This function always complete successfully. |
References USER_MANAGER_CALLBACK_INFO::DriverHandle, EFI_STATUS(), InitFormBrowser(), and LoadDeferredImageInit().
EFI_STATUS EFIAPI UserProfileCreate | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
OUT EFI_USER_PROFILE_HANDLE * | User | |||
) |
Create a new user profile.
This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[out] | User | On return, points to the new user profile handle. The user profile handle is unique only during this boot. |
EFI_SUCCESS | User profile was successfully created. | |
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to create a user profile. | |
EFI_UNSUPPORTED | Creation of new user profiles is not supported. | |
EFI_INVALID_PARAMETER | The User parameter is NULL. |
References CheckCurrentUserAccessRight(), CreateUserProfile(), and EFI_STATUS().
EFI_STATUS EFIAPI UserProfileCurrent | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
OUT EFI_USER_PROFILE_HANDLE * | CurrentUser | |||
) |
Return the current user profile handle.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[out] | CurrentUser | On return, points to the current user profile handle. |
EFI_SUCCESS | Current user profile handle returned successfully. | |
EFI_INVALID_PARAMETER | The CurrentUser parameter is NULL. |
References mCurrentUser.
EFI_STATUS EFIAPI UserProfileDelete | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN EFI_USER_PROFILE_HANDLE | User | |||
) |
Delete an existing user profile.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | User | User profile handle. |
EFI_SUCCESS | User profile was successfully deleted. | |
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to delete a user profile or there is only one user profile. | |
EFI_UNSUPPORTED | Deletion of new user profiles is not supported. | |
EFI_INVALID_PARAMETER | User does not refer to a valid user profile. |
References CheckCurrentUserAccessRight(), DelUserProfile(), and EFI_STATUS().
EFI_STATUS EFIAPI UserProfileDeleteInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN EFI_USER_PROFILE_HANDLE | User, | |||
IN EFI_USER_INFO_HANDLE | UserInfo | |||
) |
Delete user information.
Delete the user information attached to the user profile specified by the UserInfo.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | User | Handle of the user whose information will be deleted. |
[in] | UserInfo | Handle of the user information to remove. |
EFI_SUCCESS | User information deleted successfully. | |
EFI_NOT_FOUND | User information record UserInfo does not exist in the user profile. | |
EFI_ACCESS_DENIED | The current user does not have permission to delete this user information. |
References CheckCurrentUserAccessRight(), DelUserInfo(), EFI_STATUS(), mCurrentUser, and TRUE.
EFI_STATUS EFIAPI UserProfileFind | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN OUT EFI_USER_PROFILE_HANDLE * | User, | |||
IN OUT EFI_USER_INFO_HANDLE * | UserInfo, | |||
IN CONST EFI_USER_INFO * | Info, | |||
IN UINTN | InfoSize | |||
) |
Find a user using a user information record.
This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in,out] | User | On entry, points to the previously returned user profile handle, or NULL to start searching with the first user profile. On return, points to the user profile handle, or NULL if not found. |
[in,out] | UserInfo | On entry, points to the previously returned user information handle, or NULL to start searching with the first. On return, points to the user information handle of the user information record, or NULL if not found. Can be NULL, in which case only one user information record per user can be returned. |
[in] | Info | Points to the buffer containing the user information to be compared to the user information record. If the user information record data is empty, then only the user information record type is compared. If InfoSize is 0, then the user information record must be empty. |
[in] | InfoSize | The size of Info, in bytes. |
EFI_SUCCESS | User information was found. User points to the user profile handle, and UserInfo points to the user information handle. | |
EFI_NOT_FOUND | User information was not found. User points to NULL, and UserInfo points to NULL. | |
EFI_INVALID_PARAMETER | User is NULL. Or Info is NULL. |
References EFI_STATUS(), FindUserProfileByInfo(), and UINTN().
EFI_STATUS EFIAPI UserProfileGetInfo | ( | 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 | |||
) |
Return information attached to the user.
This function returns user information. The format of the information is described in User Information. The function may return EFI_ACCESS_DENIED if the information is marked private and the handle specified by User is not the current user profile. The function may return EFI_ACCESS_DENIED if the information is marked protected and the information is associated with a credential provider for which the user has not been authenticated.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | User | Handle of the user whose profile will be retrieved. |
[in] | UserInfo | Handle of the user information data record. |
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required. |
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information. |
EFI_SUCCESS | Information returned successfully. | |
EFI_ACCESS_DENIED | The information about the specified user cannot be accessed by the current user. | |
EFI_BUFFER_TOO_SMALL | The number of bytes specified by *InfoSize is too small to hold the returned data. The actual size required is returned in *InfoSize. | |
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle. | |
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL. |
References EFI_STATUS(), GetUserInfo(), and TRUE.
EFI_STATUS EFIAPI UserProfileGetNext | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN OUT EFI_USER_PROFILE_HANDLE * | User | |||
) |
Enumerate all of the enrolled users on the platform.
This function returns the next enrolled user profile. To retrieve the first user profile handle, point User at a NULL. Each subsequent call will retrieve another user profile handle until there are no more, at which point User will point to NULL.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in,out] | User | On entry, points to the previous user profile handle or NULL to start enumeration. On exit, points to the next user profile handle or NULL if there are no more user profiles. |
EFI_SUCCESS | Next enrolled user profile successfully returned. | |
EFI_ACCESS_DENIED | Next enrolled user profile was not successfully returned. | |
EFI_INVALID_PARAMETER | The User parameter is NULL. |
References EFI_STATUS(), FindUserProfile(), and TRUE.
EFI_STATUS EFIAPI UserProfileGetNextInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN EFI_USER_PROFILE_HANDLE | User, | |||
IN OUT EFI_USER_INFO_HANDLE * | UserInfo | |||
) |
Enumerate user information of all the enrolled users on the platform.
This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | User | Handle of the user whose information will be deleted. |
[in,out] | UserInfo | Handle of the user information to remove. |
EFI_SUCCESS | User information returned. | |
EFI_NOT_FOUND | No more user information found. | |
EFI_INVALID_PARAMETER | UserInfo is NULL. |
References FindUserInfo(), and TRUE.
EFI_STATUS EFIAPI UserProfileIdentify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
OUT EFI_USER_PROFILE_HANDLE * | User | |||
) |
Identify a user.
Identify the user and, if authenticated, returns the user handle and changes the current user profile. All user information marked as private in a previously selected profile is no longer available for inspection. Whenever the current user profile is changed then the an event with the GUID EFI_EVENT_GROUP_USER_PROFILE_CHANGED is signaled.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[out] | User | On return, points to the user profile handle for the current user profile. |
EFI_SUCCESS | User was successfully identified. | |
EFI_ACCESS_DENIED | User was not successfully identified. | |
EFI_INVALID_PARAMETER | The User parameter is NULL. |
References EFI_STATUS(), IdentifyUser(), mCurrentUser, PublishUserTable(), and SignalEventUserProfileChanged().
EFI_STATUS EFIAPI UserProfileNotify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This, | |
IN EFI_HANDLE | Changed | |||
) |
Called by credential provider to notify of information change.
This function allows the credential provider to notify the User Identity Manager when user status has changed. If the User Identity Manager doesn't support asynchronous changes in credentials, then this function should return EFI_UNSUPPORTED. If current user does not exist, and the credential provider can identify a user, then make the user to be current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user already exists, and the credential provider can identify another user, then switch current user to the newly identified user, and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user was identified by this credential provider and now the credential provider cannot identify current user, then logout current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | Changed | Handle on which is installed an instance of the EFI_USER_CREDENTIAL2_PROTOCOL where the user has changed. |
EFI_SUCCESS | The User Identity Manager has handled the notification. | |
EFI_NOT_READY | The function was called while the specified credential provider was not selected. | |
EFI_UNSUPPORTED | The User Identity Manager doesn't support asynchronous notifications. |
EFI_STATUS EFIAPI UserProfileSetInfo | ( | 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 | |||
) |
Add or update user information.
This function changes user information. If NULL is pointed to by UserInfo, then a new user information record is created and its handle is returned in UserInfo. Otherwise, the existing one is replaced. If EFI_USER_INFO_IDENITTY_POLICY_RECORD is changed, it is the caller's responsibility to keep it to be synced with the information on credential providers. If EFI_USER_INFO_EXCLUSIVE is specified in Info and a user information record of the same type already exists in the user profile, then EFI_ACCESS_DENIED will be returned and UserInfo will point to the handle of the existing record.
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL. |
[in] | User | Handle of the user whose profile will be retrieved. |
[in,out] | UserInfo | Handle of the user information data record. |
[in] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required. |
[in] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information. |
EFI_SUCCESS | Information returned successfully. | |
EFI_ACCESS_DENIED | The record is exclusive. | |
EFI_SECURITY_VIOLATION | The current user does not have permission to change the specified user profile or user information record. | |
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle. | |
EFI_INVALID_PARAMETER | UserInfo is NULL or Info is NULL. |
References CheckCurrentUserAccessRight(), EFI_STATUS(), mCurrentUser, and ModifyUserInfo().
EFI_USER_MANAGER_PROTOCOL gUserIdentifyManager |
EFI_USER_PROFILE_HANDLE mCurrentUser = NULL |
Initial value:
{ { { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, { (UINT8) (sizeof (VENDOR_DEVICE_PATH)), (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) } }, USER_IDENTIFY_MANAGER_GUID }, { END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { (UINT8) (END_DEVICE_PATH_LENGTH), (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8) } } }
BOOLEAN mIdentified = FALSE |
Referenced by IdentifyUser(), and UserIdentifyManagerCallback().
CREDENTIAL_PROVIDER_INFO* mProviderDb = NULL |
CHAR16 mUserName[] = L"Administrator" |
Referenced by AddDefaultUserProfile().
USER_PROFILE_DB* mUserProfileDb = NULL |