## @file
# Stuff driver
#
# Tiano PEIM to abstract construction of firmware volume in a Windows NT environment.
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
#
#  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                      = WinNtThunkPPIToProtocolPei
  FILE_GUID                      = D3AAD8DC-3A48-46ac-B1C7-28A9D3CF6755
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = PeimInitializeWinNtThunkPPIToProtocolPeim

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  WinNtThunkPPIToProtocol.c

[Packages]
  MdePkg/MdePkg.dec
  Nt32Pkg/Nt32Pkg.dec


[LibraryClasses]
  HobLib
  PeimEntryPoint
  DebugLib


[Protocols]
  gEfiWinNtThunkProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED


[Ppis]
  gPeiNtThunkPpiGuid                            # PPI ALWAYS_CONSUMED

[depex]
  gPeiNtThunkPpiGuid AND gEfiPeiMemoryDiscoveredPpiGuid