+++ /dev/null
-/**@file\r
-\r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-Module Name:\r
-\r
- WinNtThunk.c\r
-\r
-Abstract:\r
-\r
- Produce WinNtThunk protocol and it's associated device path and controller \r
- state protocols. WinNtThunk is to the NT emulation environment as \r
- PCI_ROOT_BRIGE is to real hardware. The WinNtBusDriver is the child of this\r
- driver.\r
-\r
- Since we are a root hardware abstraction we do not install a Driver Binding\r
- protocol on this handle. This driver can only support one one WinNtThunk protocol\r
- in the system, since the device path is hard coded.\r
-\r
-**/\r
-\r
-//\r
-// The package level header files this module uses\r
-//\r
-#include <Uefi.h>\r
-#include <WinNtDxe.h>\r
-//\r
-// The protocols, PPI and GUID defintions for this module\r
-//\r
-#include <Protocol/WinNtThunk.h>\r
-#include <Protocol/DevicePath.h>\r
-//\r
-// The Library classes this module consumes\r
-//\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/WinNtLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/DevicePathLib.h>\r
-\r
-#include "WinNtThunk.h"\r
-\r
-//\r
-// WinNtThunk Device Path Protocol Instance\r
-//\r
-WIN_NT_THUNK_DEVICE_PATH mWinNtThunkDevicePath = {\r
- {\r
- HARDWARE_DEVICE_PATH,\r
- HW_VENDOR_DP,\r
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),\r
- EFI_WIN_NT_THUNK_PROTOCOL_GUID,\r
- },\r
- {\r
- END_DEVICE_PATH_TYPE,\r
- END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
- END_DEVICE_PATH_LENGTH,\r
- 0\r
- }\r
-};\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-InitializeWinNtThunk (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Install WinNtThunk Protocol and it's associated Device Path protocol\r
-\r
-Arguments:\r
- (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)\r
-\r
-Returns:\r
- EFI_SUCEESS - WinNtThunk protocol is added or error status from \r
- gBS->InstallMultiProtocolInterfaces().\r
-\r
---*/\r
-// TODO: ImageHandle - add argument and description to function comment\r
-// TODO: SystemTable - add argument and description to function comment\r
-{\r
- EFI_STATUS Status;\r
- EFI_HANDLE ControllerHandle;\r
-\r
- ControllerHandle = NULL;\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &ControllerHandle,\r
- &gEfiWinNtThunkProtocolGuid,\r
- gWinNt,\r
- &gEfiDevicePathProtocolGuid,\r
- &mWinNtThunkDevicePath,\r
- NULL\r
- );\r
-\r
- return Status;\r
-}\r