## @file
# OEM hook status code handler PEIM which produces general handler and hook it
# onto the PEI status code router.
#
# Copyright (c) 2007 - 2011, 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                      = WinNtOemHookStatusCodeHandlerPei
  FILE_GUID                      = D233D6BD-F1B1-425A-BF45-5CAF2B88EDDC
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = WinNtOemHookStatusCodeHandlerPeiEntry


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  WinNtOemHookStatusCodeHandlerPei.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  Nt32Pkg/Nt32Pkg.dec

[LibraryClasses]
  PeimEntryPoint
  PeiServicesLib
  DebugLib
  OemHookStatusCodeLib

[Ppis]
  gEfiPeiRscHandlerPpiGuid                      ## CONSUMES

[Depex]
  gEfiPeiRscHandlerPpiGuid
