## @file
# OEM hook status code handler driver which produces general handler and hook it
# onto the DXE 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                      = WinNtOemHookStatusCodeHandlerDxe
  FILE_GUID                      = CA4233AD-847E-4E5D-AD3F-21CABFE5E23C
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = WinNtOemHookStatusCodeHandlerDxeEntry

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#
#  HOB Guid C Name: gEfiWinNtThunkProtocolGuid Hob Type: GUID_EXTENSION
#

[Sources]
  WinNtOemHookStatusCodeHandlerDxe.c


[Packages]
  Nt32Pkg/Nt32Pkg.dec
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  DebugLib
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  OemHookStatusCodeLib

[Protocols]
  gEfiRscHandlerProtocolGuid                    ## CONSUMES

[Depex]
  gEfiRscHandlerProtocolGuid
