#/** @file
# Win NT Bus driver
#
# This following section documents the envirnoment variables for the Win NT
#  build. These variables are used to define the (virtual) hardware
#  configuration of the NT environment
# Copyright (c) 2006 - 2007, Intel Corporation
#
#  All rights reserved. This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
#**/

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = WinNtBusDriverDxe
  FILE_GUID                      = BD7E9A27-D6C5-416a-B245-5F507D95B2BD
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = InitializeWinNtBusDriver

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#
#  DRIVER_BINDING                =  gWinNtBusDriverBinding
#  COMPONENT_NAME                =  gWinNtBusDriverComponentName
#

[Sources.common]
  ComponentName.c
  WinNtBusDriver.c
  WinNtBusDriver.h


[Packages]
  MdePkg/MdePkg.dec
  Nt32Pkg/Nt32Pkg.dec


[LibraryClasses]
  MemoryAllocationLib
  DevicePathLib
  UefiBootServicesTableLib
  BaseMemoryLib
  PcdLib
  UefiLib
  UefiDriverEntryPoint
  BaseLib
  DebugLib


[Guids]
  gEfiWinNtConsoleGuid                          # ALWAYS_CONSUMED
  gEfiWinNtGopGuid                              # ALWAYS_CONSUMED
  gEfiWinNtSerialPortGuid                       # ALWAYS_CONSUMED
  gEfiWinNtFileSystemGuid                       # ALWAYS_CONSUMED
  gEfiWinNtPhysicalDisksGuid                    # ALWAYS_CONSUMED
  gEfiWinNtVirtualDisksGuid                     # ALWAYS_CONSUMED


[Protocols]
  gWinNtBusDriverGuid                           # PROTOCOL BY_START
  gEfiDevicePathProtocolGuid                    # PROTOCOL BY_START
  gEfiWinNtThunkProtocolGuid                    # PROTOCOL TO_START
  gEfiWinNtIoProtocolGuid                       # PROTOCOL BY_START


[Pcd.common]
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtMemorySize
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtPhysicalDisk
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtVirtualDisk
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtFileSystem
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtSerialPort
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtGop
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtUga
  gEfiNt32PkgTokenSpaceGuid.PcdWinNtConsole

