;   Copyright (c) 1997-1999 Microsoft Corporation
;
[Version]

Signature="$CHICAGO$"
Class=HIDClass
ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
;
Provider=%VENDOR%
LayoutFile=layout.inf
DriverVer=08/06/1999,5.00.2000.1

;
;   Layout.inf (etc.) list all files shipped with the operating system so the 
;   source description sections are only needed if other files are needed.
;   
;   In order to use IHV drivers, the SourceDisksNames section must list the 
;   disk(s) containing the drivers and the SourceDisksFiles section must list 
;   which disk number each file to be copied is found on.
;   Disk number 99 is used to avoid a conflict with the disk numbers defined 
;   in layout.inf
;
;   HidGame.Sys is the name of the standard analog game device driver so 
;   another name must be used for an IHV driver.  NT will not load a driver 
;   compiled as HidGame.Sys and renamed as another so it must be compiled 
;   under it's final name.
;
;   Files used in a driver installation need to be digitally signed otherwise 
;   installation may fail.  See documentation elsewhere in the DDK regarding 
;   driver signing.
;
; [SourceDisksNames]
; 99=%DiskId%,,
;
; [SourceDisksFiles]
; hidgame.sys = 99

[DestinationDirs]
CopyFilesSYS = 10,system32\drivers  ;%SystemRoot%\system32\drivers
DefaultDestDir = 10,system32\drivers
CopyFilesDLL = 11                   ;%SystemRoot%\system or system32 - 98 or Win2000

[ControlFlags]
ExcludeFromSelect = GamePort\Joystick
ExcludeFromSelect = GamePort\Gamepad

;   Notes
;
;   In order that the game controllers control panel can display the device 
;   name registry keys describing the device must be set up.  In this sample 
;   these values are setup up in the Joystick.AddReg and Gamepad.AddReg 
;   sections.  Clearly these values must be set up before the CPL can cause 
;   the PnP ID to be exposed.
;
;   If no PnP ID match is found when a gameport device is exposed, the default 
;   driver will be matched.  This allows most analog joysticks to be supported 
;   without an additional driver.  Unfortunately, this means that a device 
;   which requires a driver must have its PnP ID matched or the default driver 
;   will be loaded.  To avoid the user having to change the driver the INF 
;   containing the match may be copied into the INF directory in advance.
;
;   To satisfy the two goals above, some form of preliminary setup is required.  
;   This could be a program, a batch file that runs an INF section or an INF 
;   with SetupClass=BASE and a DefaultInstall section.
;

[Manufacturer]
%VENDOR%=Vendor

[Vendor]
;
;   For each device the following must be defined:
;   Device name     - name seen in the Add New Hardware selection dialog
;   Install section - section in this INF to be run to install the device
;   PnP ID          - ID which is matched by PnP when the device is detected
;                     This should not contain spaces and for Win98 compatibility 
;                     should use the form GamePort\VID_9999&PID_9999.
;                     A PnP ID must be used or this device will be detected as 
;                     always present and so loaded during boot even if the 
;                     StartType of the service is SERVICE_DEMAND_START.
;
;Device Name   Install Section     PnP ID
;
%Joystick%=    Joystick.Inst,      GamePort\VID_045E&PID_01FE
%Gamepad%=     Gamepad.Inst,       GamePort\VID_045E&PID_01FF

[Joystick.Inst]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg    = Joystick.AddReg, AddReg.Vendor_Driver

[Joystick.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg    = Joystick.AddReg

[Joystick.AddReg]
HKLM,%KEY_OEM%\VID_045E&PID_01FE,OEMName,,%Joystick%
HKLM,%KEY_OEM%\VID_045E&PID_01FE,OEMData,1, 0, 0, 0, 0, 2, 0, 0, 0
HKLM,%KEY_OEM%\VID_045E&PID_01FE,OEMHardwareID,,"GamePort\VID_045E&PID_01FE"

[Joystick.Inst.NT.Services]
AddService = VendorJoystickEnabler,%SPSVCINST_ASSOCSERVICE%,Vendor_Service_Inst

[Gamepad.Inst]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg    = Gamepad.AddReg, AddReg.Vendor_Driver

[Gamepad.Inst.NT]
CopyFiles = CopyFilesSYS, CopyFilesDLL
AddReg    = Gamepad.AddReg

[Gamepad.AddReg]
HKLM,%KEY_OEM%\VID_045E&PID_01FF,OEMName,,%Gamepad%
HKLM,%KEY_OEM%\VID_045E&PID_01FF,OEMData, 1, 20, 0, 0, 0, 2, 0, 0, 0
HKLM,%KEY_OEM%\VID_045E&PID_01FF,OEMHardwareID,,"GamePort\VID_045E&PID_01FF"

[Gamepad.Inst.NT.Services]
AddService = VendorJoystickEnabler,%SPSVCINST_ASSOCSERVICE%,Vendor_Service_Inst


[CopyFilesSYS]
HIDGame.sys
HidClass.sys
HidParse.sys

[CopyFilesDLL]
Hid.dll

[AddReg.Vendor_Driver]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,"hidgame.sys"

[Vendor_Service_Inst]
DisplayName     = %SvcDesc%
ServiceType     = 1                  ; SERVICE_KERNEL_DRIVER
StartType       = 3                  ; SERVICE_DEMAND_START
ErrorControl    = 0                  ; SERVICE_ERROR_IGNORE
ServiceBinary   = %10%\system32\drivers\hidgame.sys
LoadOrderGroup  = Extended Base

[Strings]
; non localized strings
SPSVCINST_ASSOCSERVICE= 0x00000002
KEY_OEM="SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM"

;localized strings
VENDOR          = "Vendor Inc."
; DiskId          = "Vendor Joystick Installation and Drivers Disk"

SvcDesc         = "Vendor: Game device driver"
Joystick        = "Vendor: Joystick"
Gamepad         = "Vendor: Gamepad"