REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			309 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			309 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   UEFI 2.3.1 User Credential Protocol definition.
 | |
| 
 | |
|   Attached to a device handle, this protocol identifies a single means of identifying the user.
 | |
| 
 | |
|   Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __USER_CREDENTIAL2_H__
 | |
| #define __USER_CREDENTIAL2_H__
 | |
| 
 | |
| #include <Protocol/UserManager.h>
 | |
| 
 | |
| #define EFI_USER_CREDENTIAL2_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0xe98adb03, 0xb8b9, 0x4af8, { 0xba, 0x20, 0x26, 0xe9, 0x11, 0x4c, 0xbc, 0xe5 } \
 | |
|   }
 | |
| 
 | |
| typedef struct _EFI_USER_CREDENTIAL2_PROTOCOL EFI_USER_CREDENTIAL2_PROTOCOL;
 | |
| 
 | |
| /**
 | |
|   Enroll a user on a credential provider.
 | |
| 
 | |
|   This function enrolls a user on this credential provider. If the user exists on this credential
 | |
|   provider, update the user information on this credential provider; otherwise add the user information
 | |
|   on credential provider.
 | |
| 
 | |
|   @param[in] This                Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in] User                The user profile to enroll.
 | |
| 
 | |
|   @retval EFI_SUCCESS            User profile was successfully enrolled.
 | |
|   @retval EFI_ACCESS_DENIED      Current user profile does not permit enrollment on the user profile
 | |
|                                  handle. Either the user profile cannot enroll on any user profile or
 | |
|                                  cannot enroll on a user profile other than the current user profile.
 | |
|   @retval EFI_UNSUPPORTED        This credential provider does not support enrollment in the pre-OS.
 | |
|   @retval EFI_DEVICE_ERROR       The new credential could not be created because of a device error.
 | |
|   @retval EFI_INVALID_PARAMETER  User does not refer to a valid user profile handle.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_ENROLL)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL  *This,
 | |
|   IN       EFI_USER_PROFILE_HANDLE        User
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Returns the user interface information used during user identification.
 | |
| 
 | |
|   This function returns information about the form used when interacting with the user during user
 | |
|   identification. The form is the first enabled form in the form-set class
 | |
|   EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If
 | |
|   the user credential provider does not require a form to identify the user, then this function should
 | |
|   return EFI_NOT_FOUND.
 | |
| 
 | |
|   @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[out] Hii                On return, holds the HII database handle.
 | |
|   @param[out] FormSetId          On return, holds the identifier of the form set which contains
 | |
|                                  the form used during user identification.
 | |
|   @param[out] FormId             On return, holds the identifier of the form used during user
 | |
|                                  identification.
 | |
| 
 | |
|   @retval EFI_SUCCESS            Form returned successfully.
 | |
|   @retval EFI_NOT_FOUND          Form not returned.
 | |
|   @retval EFI_INVALID_PARAMETER  Hii is NULL or FormSetId is NULL or FormId is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_FORM)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   OUT      EFI_HII_HANDLE                *Hii,
 | |
|   OUT      EFI_GUID                      *FormSetId,
 | |
|   OUT      EFI_FORM_ID                   *FormId
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Returns bitmap used to describe the credential provider type.
 | |
| 
 | |
|   This optional function returns a bitmap which is less than or equal to the number of pixels specified
 | |
|   by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.
 | |
| 
 | |
|   @param[in]      This           Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in, out] Width          On entry, points to the desired bitmap width. If NULL then no bitmap
 | |
|                                  information will be returned. On exit, points to the width of the
 | |
|                                  bitmap returned.
 | |
|   @param[in, out] Height         On entry, points to the desired bitmap height. If NULL then no bitmap
 | |
|                                  information will be returned. On exit, points to the height of the
 | |
|                                  bitmap returned
 | |
|   @param[out]     Hii            On return, holds the HII database handle.
 | |
|   @param[out]     Image          On return, holds the HII image identifier.
 | |
| 
 | |
|   @retval EFI_SUCCESS            Image identifier returned successfully.
 | |
|   @retval EFI_NOT_FOUND          Image identifier not returned.
 | |
|   @retval EFI_INVALID_PARAMETER  Hii is NULL or Image is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_TILE)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   IN OUT   UINTN                         *Width,
 | |
|   IN OUT   UINTN                         *Height,
 | |
|   OUT      EFI_HII_HANDLE                *Hii,
 | |
|   OUT      EFI_IMAGE_ID                  *Image
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Returns string used to describe the credential provider type.
 | |
| 
 | |
|   This function returns a string which describes the credential provider. If no such string exists, then
 | |
|   EFI_NOT_FOUND is returned.
 | |
| 
 | |
|   @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[out] Hii                On return, holds the HII database handle.
 | |
|   @param[out] String             On return, holds the HII string identifier.
 | |
| 
 | |
|   @retval EFI_SUCCESS            String identifier returned successfully.
 | |
|   @retval EFI_NOT_FOUND          String identifier not returned.
 | |
|   @retval EFI_INVALID_PARAMETER  Hii is NULL or String is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_TITLE)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   OUT      EFI_HII_HANDLE                *Hii,
 | |
|   OUT      EFI_STRING_ID                 *String
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Return the user identifier associated with the currently authenticated user.
 | |
| 
 | |
|   This function returns the user identifier of the user authenticated by this credential provider. This
 | |
|   function is called after the credential-related information has been submitted on a form OR after a
 | |
|   call to Default() has returned that this credential is ready to log on.
 | |
| 
 | |
|   @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in]  User               The user profile handle of the user profile currently being considered
 | |
|                                  by the user identity manager. If NULL, then no user profile is currently
 | |
|                                  under consideration.
 | |
|   @param[out] Identifier         On return, points to the user identifier.
 | |
| 
 | |
|   @retval EFI_SUCCESS            User identifier returned successfully.
 | |
|   @retval EFI_NOT_READY          No user identifier can be returned.
 | |
|   @retval EFI_ACCESS_DENIED      The user has been locked out of this user credential.
 | |
|   @retval EFI_NOT_FOUND          User is not NULL, and the specified user handle can't be found in user
 | |
|                                  profile database
 | |
|   @retval EFI_INVALID_PARAMETER  Identifier is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_USER)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   IN       EFI_USER_PROFILE_HANDLE       User,
 | |
|   OUT      EFI_USER_INFO_IDENTIFIER      *Identifier
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Indicate that user interface interaction has begun for the specified credential.
 | |
| 
 | |
|   This function is called when a credential provider is selected by the user. If AutoLogon returns
 | |
|   FALSE, then the user interface will be constructed by the User Identity Manager.
 | |
| 
 | |
|   @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[out] AutoLogon          On return, points to the credential provider's capabilities after
 | |
|                                  the credential provider has been selected by the user.
 | |
| 
 | |
|   @retval EFI_SUCCESS            Credential provider successfully selected.
 | |
|   @retval EFI_INVALID_PARAMETER  AutoLogon is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_SELECT)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   OUT      EFI_CREDENTIAL_LOGON_FLAGS    *AutoLogon
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Indicate that user interface interaction has ended for the specified credential.
 | |
| 
 | |
|   This function is called when a credential provider is deselected by the user.
 | |
| 
 | |
|   @param[in] This        Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
| 
 | |
|   @retval EFI_SUCCESS    Credential provider successfully deselected.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_DESELECT)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Return the default logon behavior for this user credential.
 | |
| 
 | |
|   This function reports the default login behavior regarding this credential provider.
 | |
| 
 | |
|   @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[out] AutoLogon          On return, holds whether the credential provider should be
 | |
|                                  used by default to automatically log on the user.
 | |
| 
 | |
|   @retval EFI_SUCCESS            Default information successfully returned.
 | |
|   @retval EFI_INVALID_PARAMETER  AutoLogon is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_DEFAULT)(
 | |
|   IN  CONST EFI_USER_CREDENTIAL2_PROTOCOL       *This,
 | |
|   OUT EFI_CREDENTIAL_LOGON_FLAGS                *AutoLogon
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Return information attached to the credential provider.
 | |
| 
 | |
|   This function returns user information.
 | |
| 
 | |
|   @param[in]     This           Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in]     UserInfo       Handle of the user information data record.
 | |
|   @param[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.
 | |
|   @param[in,out] InfoSize       On entry, points to the size of Info. On return, points to the size of the user
 | |
|                                 information.
 | |
| 
 | |
|   @retval EFI_SUCCESS           Information returned successfully.
 | |
|   @retval EFI_BUFFER_TOO_SMALL  The size specified by InfoSize is too small to hold all of the user
 | |
|                                 information. The size required is returned in *InfoSize.
 | |
|   @retval EFI_NOT_FOUND         The specified UserInfo does not refer to a valid user info handle.
 | |
|   @retval EFI_INVALID_PARAMETER Info is NULL or InfoSize is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_GET_INFO)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   IN       EFI_USER_INFO_HANDLE          UserInfo,
 | |
|   OUT      EFI_USER_INFO                 *Info,
 | |
|   IN OUT   UINTN                         *InfoSize
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Enumerate all of the user information records on the credential provider.
 | |
| 
 | |
|   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.
 | |
| 
 | |
|   @param[in]     This            Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in,out] UserInfo        On entry, points to the previous user information handle or NULL to
 | |
|                                  start enumeration. On exit, points to the next user information handle
 | |
|                                  or NULL if there is no more user information.
 | |
| 
 | |
|   @retval EFI_SUCCESS            User information returned.
 | |
|   @retval EFI_NOT_FOUND          No more user information found.
 | |
|   @retval EFI_INVALID_PARAMETER  UserInfo is NULL.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_GET_NEXT_INFO)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,
 | |
|   IN OUT   EFI_USER_INFO_HANDLE          *UserInfo
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Delete a user on this credential provider.
 | |
| 
 | |
|   This function deletes a user on this credential provider.
 | |
| 
 | |
|   @param[in]     This            Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
 | |
|   @param[in]     User            The user profile handle to delete.
 | |
| 
 | |
|   @retval EFI_SUCCESS            User profile was successfully deleted.
 | |
|   @retval EFI_ACCESS_DENIED      Current user profile does not permit deletion on the user profile handle.
 | |
|                                  Either the user profile cannot delete on any user profile or cannot delete
 | |
|                                  on a user profile other than the current user profile.
 | |
|   @retval EFI_UNSUPPORTED        This credential provider does not support deletion in the pre-OS.
 | |
|   @retval EFI_DEVICE_ERROR       The new credential could not be deleted because of a device error.
 | |
|   @retval EFI_INVALID_PARAMETER  User does not refer to a valid user profile handle.
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_CREDENTIAL2_DELETE)(
 | |
|   IN CONST EFI_USER_CREDENTIAL2_PROTOCOL  *This,
 | |
|   IN       EFI_USER_PROFILE_HANDLE        User
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// This protocol provides support for a single class of credentials
 | |
| ///
 | |
| struct _EFI_USER_CREDENTIAL2_PROTOCOL {
 | |
|   EFI_GUID                         Identifier; ///< Uniquely identifies this credential provider.
 | |
|   EFI_GUID                         Type;       ///< Identifies this class of User Credential Provider.
 | |
|   EFI_CREDENTIAL2_ENROLL           Enroll;
 | |
|   EFI_CREDENTIAL2_FORM             Form;
 | |
|   EFI_CREDENTIAL2_TILE             Tile;
 | |
|   EFI_CREDENTIAL2_TITLE            Title;
 | |
|   EFI_CREDENTIAL2_USER             User;
 | |
|   EFI_CREDENTIAL2_SELECT           Select;
 | |
|   EFI_CREDENTIAL2_DESELECT         Deselect;
 | |
|   EFI_CREDENTIAL2_DEFAULT          Default;
 | |
|   EFI_CREDENTIAL2_GET_INFO         GetInfo;
 | |
|   EFI_CREDENTIAL2_GET_NEXT_INFO    GetNextInfo;
 | |
|   EFI_CREDENTIAL_CAPABILITIES      Capabilities;
 | |
|   EFI_CREDENTIAL2_DELETE           Delete;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiUserCredential2ProtocolGuid;
 | |
| 
 | |
| #endif
 |