]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Update UID drivers to align with latest UEFI spec 2.3.1.
authorgdong1 <gdong1@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 12 Oct 2011 03:27:15 +0000 (03:27 +0000)
committergdong1 <gdong1@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 12 Oct 2011 03:27:15 +0000 (03:27 +0000)
Signed-off-by: gdong1
Reviewed-by: hhtian
Reviewed-by: xdu2
Reviewed-by: lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12529 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Protocol/UserCredential.h
MdePkg/Include/Protocol/UserCredential2.h [new file with mode: 0644]
MdePkg/MdePkg.dec

index a16bcae06f9ae213f90a4582d69a7e4f9cad0889..227f7faf940741c83d29615706e71f4e4702df02 100644 (file)
@@ -1,5 +1,6 @@
 /** @file\r
-  UEFI 2.2 User Credential Protocol definition.\r
+  UEFI 2.2 User Credential Protocol definition.It has been removed from UEFI 2.3.1 and replaced\r
+  by EFI_USER_CREDENTIAL2_PROTOCOL.\r
 \r
   Attached to a device handle, this protocol identifies a single means of identifying the user.\r
 \r
diff --git a/MdePkg/Include/Protocol/UserCredential2.h b/MdePkg/Include/Protocol/UserCredential2.h
new file mode 100644 (file)
index 0000000..59694e6
--- /dev/null
@@ -0,0 +1,314 @@
+/** @file\r
+  UEFI 2.3.1 User Credential Protocol definition.\r
+\r
+  Attached to a device handle, this protocol identifies a single means of identifying the user.\r
+\r
+  Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+**/\r
+\r
+#ifndef __USER_CREDENTIAL2_H__\r
+#define __USER_CREDENTIAL2_H__\r
+\r
+#include <Protocol/UserManager.h>\r
+\r
+#define EFI_USER_CREDENTIAL2_PROTOCOL_GUID \\r
+  { \\r
+    0xe98adb03, 0xb8b9, 0x4af8, { 0xba, 0x20, 0x26, 0xe9, 0x11, 0x4c, 0xbc, 0xe5 } \\r
+  }\r
+\r
+typedef struct _EFI_USER_CREDENTIAL2_PROTOCOL  EFI_USER_CREDENTIAL2_PROTOCOL;\r
+\r
+/**\r
+  Enroll a user on a credential provider.\r
+\r
+  This function enrolls a user on this credential provider. If the user exists on this credential \r
+  provider, update the user information on this credential provider; otherwise add the user information \r
+  on credential provider.\r
+\r
+  @param[in] This                Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in] User                The user profile to enroll.\r
\r
+  @retval EFI_SUCCESS            User profile was successfully enrolled.\r
+  @retval EFI_ACCESS_DENIED      Current user profile does not permit enrollment on the user profile \r
+                                 handle. Either the user profile cannot enroll on any user profile or \r
+                                 cannot enroll on a user profile other than the current user profile.\r
+  @retval EFI_UNSUPPORTED        This credential provider does not support enrollment in the pre-OS.\r
+  @retval EFI_DEVICE_ERROR       The new credential could not be created because of a device error.\r
+  @retval EFI_INVALID_PARAMETER  User does not refer to a valid user profile handle.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_ENROLL)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL  *This,\r
+  IN       EFI_USER_PROFILE_HANDLE        User\r
+  );\r
+\r
+/**\r
+  Returns the user interface information used during user identification.\r
+\r
+  This function returns information about the form used when interacting with the user during user \r
+  identification. The form is the first enabled form in the form-set class \r
+  EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If \r
+  the user credential provider does not require a form to identify the user, then this function should \r
+  return EFI_NOT_FOUND.\r
+\r
+  @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[out] Hii                On return, holds the HII database handle.\r
+  @param[out] FormSetId          On return, holds the identifier of the form set which contains\r
+                                 the form used during user identification.\r
+  @param[out] FormId             On return, holds the identifier of the form used during user \r
+                                 identification.\r
\r
+  @retval EFI_SUCCESS            Form returned successfully.\r
+  @retval EFI_NOT_FOUND          Form not returned.\r
+  @retval EFI_INVALID_PARAMETER  Hii is NULL or FormSetId is NULL or FormId is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_FORM)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  OUT      EFI_HII_HANDLE                *Hii,\r
+  OUT      EFI_GUID                      *FormSetId,\r
+  OUT      EFI_FORM_ID                   *FormId\r
+  );\r
+\r
+/**\r
+  Returns bitmap used to describe the credential provider type.\r
+\r
+  This optional function returns a bitmap which is less than or equal to the number of pixels specified \r
+  by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned. \r
+\r
+  @param[in]      This           Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in, out] Width          On entry, points to the desired bitmap width. If NULL then no bitmap\r
+                                 information will be returned. On exit, points to the width of the  \r
+                                 bitmap returned.\r
+  @param[in, out] Height         On entry, points to the desired bitmap height. If NULL then no bitmap \r
+                                 information will be returned. On exit, points to the height of the  \r
+                                 bitmap returned\r
+  @param[out]     Hii            On return, holds the HII database handle. \r
+  @param[out]     Image          On return, holds the HII image identifier. \r
\r
+  @retval EFI_SUCCESS            Image identifier returned successfully.\r
+  @retval EFI_NOT_FOUND          Image identifier not returned.\r
+  @retval EFI_INVALID_PARAMETER  Hii is NULL or Image is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_TILE)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  IN OUT   UINTN                         *Width,\r
+  IN OUT   UINTN                         *Height,\r
+  OUT      EFI_HII_HANDLE                *Hii,\r
+  OUT      EFI_IMAGE_ID                  *Image\r
+  );\r
+\r
+/**\r
+  Returns string used to describe the credential provider type.\r
+\r
+  This function returns a string which describes the credential provider. If no such string exists, then \r
+  EFI_NOT_FOUND is returned. \r
+\r
+  @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[out] Hii                On return, holds the HII database handle.\r
+  @param[out] String             On return, holds the HII string identifier.\r
\r
+  @retval EFI_SUCCESS            String identifier returned successfully.\r
+  @retval EFI_NOT_FOUND          String identifier not returned.\r
+  @retval EFI_INVALID_PARAMETER  Hii is NULL or String is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_TITLE)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  OUT      EFI_HII_HANDLE                *Hii,\r
+  OUT      EFI_STRING_ID                 *String\r
+  );\r
+\r
+/**\r
+  Return the user identifier associated with the currently authenticated user.\r
+\r
+  This function returns the user identifier of the user authenticated by this credential provider. This \r
+  function is called after the credential-related information has been submitted on a form OR after a \r
+  call to Default() has returned that this credential is ready to log on.\r
+\r
+  @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in]  User               The user profile handle of the user profile currently being considered \r
+                                 by the user identity manager. If NULL, then no user profile is currently \r
+                                 under consideration.\r
+  @param[out] Identifier         On return, points to the user identifier. \r
\r
+  @retval EFI_SUCCESS            User identifier returned successfully.\r
+  @retval EFI_NOT_READY          No user identifier can be returned.\r
+  @retval EFI_ACCESS_DENIED      The user has been locked out of this user credential.\r
+  @retval EFI_NOT_FOUND          User is not NULL, and the specified user handle can't be found in user \r
+                                 profile database \r
+  @retval EFI_INVALID_PARAMETER  Identifier is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_USER)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  IN       EFI_USER_PROFILE_HANDLE       User,\r
+  OUT      EFI_USER_INFO_IDENTIFIER      *Identifier\r
+  );\r
+\r
+/**\r
+  Indicate that user interface interaction has begun for the specified credential.\r
+\r
+  This function is called when a credential provider is selected by the user. If AutoLogon returns \r
+  FALSE, then the user interface will be constructed by the User Identity Manager. \r
+\r
+  @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[out] AutoLogon          On return, points to the credential provider's capabilities after \r
+                                 the credential provider has been selected by the user. \r
\r
+  @retval EFI_SUCCESS            Credential provider successfully selected.\r
+  @retval EFI_INVALID_PARAMETER  AutoLogon is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_SELECT)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  OUT      EFI_CREDENTIAL_LOGON_FLAGS    *AutoLogon\r
+  ); \r
+\r
+/**\r
+  Indicate that user interface interaction has ended for the specified credential.\r
+\r
+  This function is called when a credential provider is deselected by the user.\r
+\r
+  @param[in] This        Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
\r
+  @retval EFI_SUCCESS    Credential provider successfully deselected.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_DESELECT)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This\r
+  );\r
+\r
+/**\r
+  Return the default logon behavior for this user credential.\r
+\r
+  This function reports the default login behavior regarding this credential provider.  \r
+\r
+  @param[in]  This               Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[out] AutoLogon          On return, holds whether the credential provider should be \r
+                                 used by default to automatically log on the user.  \r
\r
+  @retval EFI_SUCCESS            Default information successfully returned.\r
+  @retval EFI_INVALID_PARAMETER  AutoLogon is NULL.\r
+**/\r
+typedef \r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_DEFAULT)(\r
+  IN  CONST EFI_USER_CREDENTIAL2_PROTOCOL       *This,\r
+  OUT EFI_CREDENTIAL_LOGON_FLAGS                *AutoLogon\r
+  );\r
+\r
+/**\r
+  Return information attached to the credential provider.\r
+\r
+  This function returns user information. \r
+\r
+  @param[in]     This           Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in]     UserInfo       Handle of the user information data record. \r
+  @param[out]    Info           On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user \r
+                                information. If the buffer is too small to hold the information, then \r
+                                EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the \r
+                                number of bytes actually required.\r
+  @param[in,out] InfoSize       On entry, points to the size of Info. On return, points to the size of the user \r
+                                information. \r
\r
+  @retval EFI_SUCCESS           Information returned successfully.\r
+  @retval EFI_BUFFER_TOO_SMALL  The size specified by InfoSize is too small to hold all of the user \r
+                                information. The size required is returned in *InfoSize.\r
+  @retval EFI_NOT_FOUND         The specified UserInfo does not refer to a valid user info handle.\r
+  @retval EFI_INVALID_PARAMETER Info is NULL or InfoSize is NULL.                                \r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_GET_INFO)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  IN       EFI_USER_INFO_HANDLE          UserInfo,\r
+  OUT      EFI_USER_INFO                 *Info,\r
+  IN OUT   UINTN                         *InfoSize\r
+  );\r
+\r
+/**\r
+  Enumerate all of the user information records on the credential provider.\r
+\r
+  This function returns the next user information record. To retrieve the first user information record \r
+  handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information \r
+  record handle until there are no more, at which point UserInfo will point to NULL. \r
+\r
+  @param[in]     This            Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in,out] UserInfo        On entry, points to the previous user information handle or NULL to  \r
+                                 start enumeration. On exit, points to the next user information handle \r
+                                 or NULL if there is no more user information.\r
\r
+  @retval EFI_SUCCESS            User information returned.\r
+  @retval EFI_NOT_FOUND          No more user information found.\r
+  @retval EFI_INVALID_PARAMETER  UserInfo is NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CREDENTIAL_GET_NEXT_INFO)(\r
+  IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This,\r
+  IN OUT   EFI_USER_INFO_HANDLE          *UserInfo\r
+  );\r
+\r
+/**\r
+  Delete a user on this credential provider.\r
+\r
+  This function deletes a user on this credential provider. \r
+\r
+  @param[in]     This            Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.\r
+  @param[in]     User            The user profile handle to delete.\r
+\r
+  @retval EFI_SUCCESS            User profile was successfully deleted.\r
+  @retval EFI_ACCESS_DENIED      Current user profile does not permit deletion on the user profile handle. \r
+                                 Either the user profile cannot delete on any user profile or cannot delete \r
+                                 on a user profile other than the current user profile. \r
+  @retval EFI_UNSUPPORTED        This credential provider does not support deletion in the pre-OS.\r
+  @retval EFI_DEVICE_ERROR       The new credential could not be deleted because of a device error.\r
+  @retval EFI_INVALID_PARAMETER  User does not refer to a valid user profile handle.\r
+**/\r
+typedef \r
+EFI_STATUS \r
+(EFIAPI *EFI_CREDENTIAL_DELETE)(\r
+ IN CONST EFI_USER_CREDENTIAL2_PROTOCOL  *This,\r
+ IN       EFI_USER_PROFILE_HANDLE        User\r
+);\r
+\r
+///\r
+/// This protocol provides support for a single class of credentials\r
+///\r
+struct _EFI_USER_CREDENTIAL2_PROTOCOL {\r
+  EFI_GUID                      Identifier;  ///< Uniquely identifies this credential provider.\r
+  EFI_GUID                      Type;        ///< Identifies this class of User Credential Provider.\r
+  EFI_CREDENTIAL_ENROLL         Enroll;\r
+  EFI_CREDENTIAL_FORM           Form;\r
+  EFI_CREDENTIAL_TILE           Tile;\r
+  EFI_CREDENTIAL_TITLE          Title;\r
+  EFI_CREDENTIAL_USER           User;\r
+  EFI_CREDENTIAL_SELECT         Select;   \r
+  EFI_CREDENTIAL_DESELECT       Deselect;\r
+  EFI_CREDENTIAL_DEFAULT        Default;\r
+  EFI_CREDENTIAL_GET_INFO       GetInfo;\r
+  EFI_CREDENTIAL_GET_NEXT_INFO  GetNextInfo;\r
+  EFI_CREDENTIAL_CAPABILITIES   Capabilities;\r
+  EFI_CREDENTIAL_DELETE         Delete; \r
+};\r
+\r
+extern EFI_GUID gEfiUserCredential2ProtocolGuid;\r
+\r
+#endif\r
index 132fe7a9d743cf20c27584d5dd72fe63c40a2ec1..38787336d536c3ea9b73d55d23ff0f70fe41e80d 100644 (file)
   ## Include/Protocol/StorageSecurityCommand.h\r
   gEfiStorageSecurityCommandProtocolGuid    = { 0xc88b0b6d, 0x0dfc, 0x49a7, {0x9c, 0xb4, 0x49, 0x7, 0x4b, 0x4c, 0x3a, 0x78 }}\r
 \r
+  ## Include/Protocol/UserCredential2.h\r
+  gEfiUserCredential2ProtocolGuid       = { 0xe98adb03, 0xb8b9, 0x4af8, {0xba, 0x20, 0x26, 0xe9, 0x11, 0x4c, 0xbc, 0xe5 }}\r
+\r
 [PcdsFeatureFlag]\r
   ## If TRUE, the component name protocol will not be installed.\r
   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE|BOOLEAN|0x0000000d\r