## @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. 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