1 /**@file
2 
3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14   WinNtLib.c
15 
16 Abstract:
17 
18   WinNt Library
19 
20 **/
21 
22 #include <PiDxe.h>
23 #include <WinNtDxe.h>
24 #include <Library/WinNtLib.h>
25 #include <Library/DebugLib.h>
26 #include <Library/HobLib.h>
27 
28 
29 EFI_WIN_NT_THUNK_PROTOCOL *gWinNt;
30 
31 EFI_STATUS
WinNtLibConstructor(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE * SystemTable)32 WinNtLibConstructor (
33   IN EFI_HANDLE        ImageHandle,
34   IN EFI_SYSTEM_TABLE  *SystemTable
35   )
36 /*++
37 
38 Routine Description:
39 
40 Arguments:
41 
42 Returns:
43 
44 --*/
45 {
46   EFI_HOB_GUID_TYPE        *GuidHob;
47 
48   GuidHob = GetFirstGuidHob (&gEfiWinNtThunkProtocolGuid);
49   ASSERT (GuidHob != NULL);
50   gWinNt = (EFI_WIN_NT_THUNK_PROTOCOL *)(*(UINTN *)(GET_GUID_HOB_DATA (GuidHob)));
51   ASSERT (gWinNt != NULL);
52   return EFI_SUCCESS;
53 }
54