Add BdsLibUserIdentify API in GenericBdsLib
authorgdong1 <gdong1@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 1 Feb 2010 06:13:04 +0000 (06:13 +0000)
committergdong1 <gdong1@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 1 Feb 2010 06:13:04 +0000 (06:13 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9897 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h
IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c
IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf

index a9b89316bf30b0e83b7864f4367d751cce943847..8a0311597a98ab7efa6fb0eb03cfaf37a2b08418 100644 (file)
@@ -18,6 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef _GENERIC_BDS_LIB_H_\r
 #define _GENERIC_BDS_LIB_H_\r
 \r
+#include <Protocol/UserManager.h>\r
 extern EFI_HANDLE mBdsImageHandle;\r
 \r
 ///\r
@@ -952,6 +953,21 @@ BdsLibSaveMemoryTypeInformation (
   VOID\r
   );\r
   \r
+/**\r
+  Identify a user and, if authenticated, returns the current user profile handle.\r
+\r
+  @param[out]  User           Point to user profile handle.\r
+  \r
+  @retval EFI_SUCCESS         User is successfully identified, or user identification\r
+                              is not supported.\r
+  @retval EFI_ACCESS_DENIED   User is not successfully identified\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+BdsLibUserIdentify (\r
+  OUT EFI_USER_PROFILE_HANDLE         *User\r
+  );  \r
 \r
 /**\r
   This function checks if a Fv file device path is valid, according to a file GUID. If it is invalid,\r
index 66b9d2bb2d9574a7d42e7b22b48bf13e836b9694..6636b73f74415ecea9f68814931e5469d3c4867c 100644 (file)
@@ -1235,3 +1235,34 @@ BdsLibSaveMemoryTypeInformation (
 }\r
 \r
 \r
+/**\r
+  Identify a user and, if authenticated, returns the current user profile handle.\r
+\r
+  @param[out]  User           Point to user profile handle.\r
+  \r
+  @retval EFI_SUCCESS         User is successfully identified, or user identification\r
+                              is not supported.\r
+  @retval EFI_ACCESS_DENIED   User is not successfully identified\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+BdsLibUserIdentify (\r
+  OUT EFI_USER_PROFILE_HANDLE         *User\r
+  )\r
+{\r
+  EFI_STATUS                          Status;\r
+  EFI_USER_MANAGER_PROTOCOL           *Manager;\r
+  \r
+  Status = gBS->LocateProtocol (\r
+                  &gEfiUserManagerProtocolGuid,\r
+                  NULL,\r
+                  (VOID **) &Manager\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
+  return Manager->Identify (Manager, User);\r
+}\r
+\r
index 3b81f80b7663b1b621f68083dcb0a4a1a90076f3..dcb0295a4337779b5a80f74c223ebcd53a07d888 100644 (file)
   gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES\r
   gEfiOEMBadgingProtocolGuid                    # PROTOCOL CONSUMES\r
   gEfiHiiFontProtocolGuid                       # PROTOCOL CONSUMES\r
+  gEfiUserManagerProtocolGuid                   # PROTOCOL CONSUMES\r
 \r
 [FeaturePcd]\r
   gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport\r