## @file
#  Produces user manager protocol
#
#  This module manages user information and produces user manager protocol.
# 
# Copyright (c) 2009 - 2014, 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                      = UserIdentifyManager
  MODULE_UNI_FILE                = UserIdentifyManager.uni
  FILE_GUID                      = C5D3191B-27D5-4873-8DF2-628136991A21
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = UserIdentifyManagerInit

[sources]
  UserIdentifyManager.c
  LoadDeferredImage.c
  UserIdentifyManager.h
  UserIdentifyManagerData.h
  UserIdentifyManagerStrings.uni
  UserIdentifyManagerVfr.Vfr

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  MemoryAllocationLib
  BaseMemoryLib
  DebugLib
  HiiLib
  UefiLib

[Guids]
  gEfiIfrTianoGuid                              ## SOMETIMES_CONSUMES  ## GUID
  gEfiEventUserProfileChangedGuid               ## SOMETIMES_PRODUCES  ## Event
  
  ## SOMETIMES_PRODUCES                         ## Variable:L"Userxxxx"
  ## SOMETIMES_CONSUMES                         ## Variable:L"Userxxxx"
  ## CONSUMES                                   ## HII
  gUserIdentifyManagerGuid

[Protocols]
  gEfiFormBrowser2ProtocolGuid                  ## CONSUMES
  gEfiHiiDatabaseProtocolGuid                   ## CONSUMES
  gEfiUserCredential2ProtocolGuid               ## SOMETIMES_CONSUMES
  gEfiDeferredImageLoadProtocolGuid             ## SOMETIMES_CONSUMES
  gEfiSimpleTextOutProtocolGuid                 ## SOMETIMES_CONSUMES
  gEfiSimpleTextInProtocolGuid                  ## SOMETIMES_CONSUMES
  gEfiSimpleTextInputExProtocolGuid             ## SOMETIMES_CONSUMES
  gEfiHiiConfigAccessProtocolGuid               ## PRODUCES
  gEfiDevicePathProtocolGuid                    ## PRODUCES
  
  ## PRODUCES
  ## SOMETIMES_PRODUCES                         ## SystemTable
  gEfiUserManagerProtocolGuid                   

[Depex]
  gEfiHiiDatabaseProtocolGuid   AND 
  gEfiHiiStringProtocolGuid     AND 
  gEfiFormBrowser2ProtocolGuid 

[UserExtensions.TianoCore."ExtraFiles"]
  UserIdentifyManagerExtra.uni
  