;
; RioGamepad.inf — RIOJoy virtual HID gamepad (KMDF + VHF), root-enumerated.
;

[Version]
Signature   = "$WINDOWS NT$"
Class       = System
ClassGuid   = {4d36e97d-e325-11ce-bfc1-08002be10318}
Provider    = %ManufacturerName%
CatalogFile = RioGamepad.cat
DriverVer   =
PnpLockdown = 1

[DestinationDirs]
DefaultDestDir = 13

[SourceDisksNames]
1 = %DiskName%

[SourceDisksFiles]
RioGamepad.sys = 1

[Manufacturer]
%ManufacturerName% = Standard,NT$ARCH$.10.0...16299

[Standard.NT$ARCH$.10.0...16299]
%DeviceName% = RioGamepad_Device, root\RioGamepad

[RioGamepad_Device.NT]
CopyFiles = RioGamepad_CopyFiles

[RioGamepad_CopyFiles]
RioGamepad.sys

; VHF (vhf.sys) must sit beneath this FDO as a lower filter, otherwise
; VhfCreate fails in EvtDeviceAdd with STATUS_INVALID_DEVICE_REQUEST
; (0xC0000010) and the device shows Code 31 (CM_PROB_FAILED_ADD).
[RioGamepad_Device.NT.HW]
AddReg = RioGamepad_Device.NT.AddReg

[RioGamepad_Device.NT.AddReg]
HKR,, "LowerFilters", 0x00010000, "vhf"

[RioGamepad_Device.NT.Services]
AddService = RioGamepad, 0x00000002, RioGamepad_Service

[RioGamepad_Service]
DisplayName   = %ServiceName%
ServiceType   = 1   ; SERVICE_KERNEL_DRIVER
StartType     = 3   ; SERVICE_DEMAND_START
ErrorControl  = 1   ; SERVICE_ERROR_NORMAL
ServiceBinary = %13%\RioGamepad.sys

[RioGamepad_Device.NT.Wdf]
KmdfService = RioGamepad, RioGamepad_wdfsect

[RioGamepad_wdfsect]
KmdfLibraryVersion = 1.15

[Strings]
ManufacturerName = "VWE"
DiskName         = "RioGamepad Installation Disk"
DeviceName       = "RIOJoy Virtual Gamepad"
ServiceName      = "RIOJoy Virtual Gamepad Service"
