#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
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
}\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
gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES\r
gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES\r
gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES\r
+ gEfiUserManagerProtocolGuid # PROTOCOL CONSUMES\r
\r
[FeaturePcd]\r
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport\r