[Version]
Signature   = "$WINDOWS NT$"
Class       = HIDClass
ClassGuid   = {745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider    = %MSFT%
PnpLockdown = 1
DriverVer = 06/21/2006,10.0.22621.2506

[SourceDisksNames]
3426 = windows cd

[SourceDisksFiles]
vhf.sys = 3426

[DestinationDirs]
vhfservice.CopyFiles = 12

[ControlFlags]
; Preconfigure all sections in this INF. We do this because 3rd-party INFs depend on the VHF service
; already being installed and simply refer to it directly in their LowerFilters.
PreConfigureDriver = *

[Manufacturer]
%MSFT% = Microsoft,NTamd64

[Microsoft.NTamd64]
%VhfDevice%     = vhfdevice,HID_DEVICE_SYSTEM_VHF
; This installation section exists only to allow other INFs to Include/Needs the service definition.
%VhfService%    = vhfservice

[vhfdevice.NT]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT

[vhfdevice.NT.HW]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT.HW
AddReg = vhfdevice.NT.HW.AddReg

[vhfdevice.NT.HW.AddReg]
HKR, , DeviceResetNotificationEnabled, 0x10001, 0x1

[vhfdevice.NT.Services]
Include=MsHidKmdf.inf
Needs=MsHidKmdf.NT.Services

[vhfservice.NT]
CopyFiles = vhfservice.CopyFiles

[vhfservice.CopyFiles]
vhf.sys,,,0x100 ; COPYFLG_PROTECTED_WINDOWS_DRIVER_FILE

[vhfservice.NT.HW]
AddReg = vhfservice.NT.HW.AddReg

[vhfservice.NT.HW.AddReg]
; This tells VHF to operate as a function driver instead of a filter driver.
HKR, , VhfMode, 0x10001, 0x2

[vhfservice.NT.Services]
AddService = vhf,%SPSVCINST_ASSOCSERVICE%,vhfservice.AddService

[vhfservice.AddService]
DisplayName    = %VhfService%
Description    = %VhfDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
LoadOrderGroup = Base
ServiceBinary  = %12%\vhf.sys

[Strings]
; Localizable
MSFT       = "Microsoft"
VhfDevice  = "Virtual HID Framework (VHF) HID device"
VhfService = "Virtual HID Framework (VHF) Driver"
VhfDesc    = "Kernel mode driver that implements the Virtual HID Framework (VHF)"

; non-localizable strings
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER  = 1
SERVICE_DEMAND_START   = 3
SERVICE_ERROR_IGNORE   = 0
SERVICE_ERROR_NORMAL   = 1
