summaryrefslogtreecommitdiff
path: root/Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c
diff options
context:
space:
mode:
Diffstat (limited to 'Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c')
-rw-r--r--Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c b/Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c
index edfcbcfd58..0e5b9f5953 100644
--- a/Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c
+++ b/Nt32Pkg/Library/Nt32BdsLib/BdsPlatform.c
@@ -345,6 +345,11 @@ PlatformBdsPolicyBehavior (
PlatformBdsConnectSequence ();
//
+ // Perform user identification process
+ //
+ PlatformBdsUserIdentify ();
+
+ //
// Notes: current time out = 0 can not enter the
// front page
//
@@ -363,6 +368,10 @@ PlatformBdsPolicyBehavior (
PlatformBdsConnectConsole (gPlatformConsole);
PlatformBdsDiagnostics (EXTENSIVE, FALSE, BaseMemoryTest);
BdsLibConnectAll ();
+ //
+ // Perform user identification process
+ //
+ PlatformBdsUserIdentify ();
ProcessCapsules (BOOT_ON_FLASH_UPDATE);
break;
@@ -375,6 +384,11 @@ PlatformBdsPolicyBehavior (
PlatformBdsDiagnostics (EXTENSIVE, FALSE, BaseMemoryTest);
//
+ // Perform user identification process
+ //
+ PlatformBdsUserIdentify ();
+
+ //
// In recovery boot mode, we still enter to the
// frong page now
//
@@ -404,6 +418,11 @@ PlatformBdsPolicyBehavior (
PlatformBdsConnectSequence ();
//
+ // Perform user identification process
+ //
+ PlatformBdsUserIdentify ();
+
+ //
// Give one chance to enter the setup if we
// have the time out
//
@@ -558,3 +577,49 @@ LockKeyboards (
{
return EFI_UNSUPPORTED;
}
+
+
+EFI_STATUS
+PlatformBdsUserIdentify (
+ VOID
+ )
+/*++
+
+ Routine Description:
+
+ This function is to identify a valid user, if successed, handle the deferred images.
+
+ Arguments:
+
+ None.
+
+ Returns:
+
+ EFI_SUCCESS - User successfully identified.
+
+--*/
+{
+ EFI_STATUS Status;
+ EFI_USER_MANAGER_PROTOCOL *Manager;
+ EFI_USER_PROFILE_HANDLE User;
+
+ //
+ // Locate user manager driver
+ //
+ Status = gBS->LocateProtocol (
+ &gEfiUserManagerProtocolGuid,
+ NULL,
+ &Manager
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ //
+ // Identity user
+ //
+ Status = Manager->Identify (Manager, &User);
+ return Status;
+}
+
+