#/** @file
# Component description file for DriverSample module.
#
# This is an example driver to introduce how to export data to the HII protocol to be later utilized by the Setup Protocol.
# 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                      = DriverSampleDxe
  FILE_GUID                      = FE3542FE-C1D3-4EF8-657C-8048606FF670
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = DriverSampleInit

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  DriverSample.h
  NVDataStruc.h
  DriverSample.c
  Vfr.vfr
  VfrStrings.uni
  Inventory.vfr
  InventoryStrings.uni

[Packages]
  MdePkg/MdePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec


[LibraryClasses]
  HiiLibFramework
  MemoryAllocationLib
  BaseMemoryLib
  IfrSupportLibFramework
  PrintLib
  BaseLib
  UefiDriverEntryPoint
  DebugLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib



[Protocols]
  gEfiFormCallbackProtocolGuid                  # PROTOCOL ALWAYS_PRODUCED
  gEfiHiiProtocolGuid                           # PROTOCOL ALWAYS_CONSUMED

[Depex]
  gEfiSimpleTextOutProtocolGuid