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

[SourceDisksNames]
3426 = windows cd

[SourceDisksFiles]
msgpiowin32.sys = 3426

[DestinationDirs]
GPIOCopyFiles = 12

[Manufacturer]
%MSFT% = Microsoft,NTamd64

[Microsoft.NTamd64]
%GPIO.Button.DeviceDesc%                     = GPIO_Inst,PNP0C40
%GPIO.LaptopOrSlateModeIndicator.DeviceDesc% = GPIO_Inst_Sensors,PNP0C60
%GPIO.DockModeIndicator.DeviceDesc%          = GPIO_Inst_Sensors,PNP0C70
;
; Following install section is for sideband device for injecting button state from another source.
;
%GPIO.Button_Injection_DeviceDesc%            = GPIO_Inst_Injection, {30ebfbf8-df5f-4d4d-9fc5-a26c7fd1df4a}\GPIO_Buttons

[GPIO_Inst.NT]
Include   = MsHidKmdf.inf
Needs     = MsHidKmdf_UpperFilter.NT
Copyfiles = GPIOCopyFiles

[GPIO_Inst.NT.HW]
Include = MsHidKmdf.inf
Needs   = MsHidKmdf_UpperFilter.NT.HW

[GPIO_Inst.NT.Filters]
Include = MsHidKmdf.inf
Needs   = MsHidKmdf_UpperFilter.NT.Filters

[GPIO_Inst.NT.Services]
Include    = MsHidKmdf.inf
Needs      = MsHidKmdf_UpperFilter.NT.Services
AddService = msgpiowin32,%SPSVCINST_ASSOCSERVICE%,GPIO_Service_Inst


[GPIO_Inst_Sensors.NT]
Copyfiles = GPIOCopyFiles

[GPIO_Inst_Sensors.NT.HW]
AddReg = GPIO_Inst_Sensors.NT.AddReg

[GPIO_Inst_Sensors.NT.AddReg]                            
HKR,,DeviceCharacteristics,0x10001,0x0100                                  ; Use same security checks on relative opens
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)(A;;GRGW;;;UD)" ; SDDL_DEVOBJ_SYS_ALL_ADM_RWX + SDDL_USER_MODE_DRIVERS.

[GPIO_Inst_Sensors.NT.Services]
AddService = msgpiowin32,%SPSVCINST_ASSOCSERVICE%,GPIO_Service_Inst


[GPIO_Inst_Injection.NT]
; NULL section

[GPIO_Inst_Injection.NT.Services]
; NULL service
AddService = , 0x2,

[GPIOCopyFiles]
msgpiowin32.sys,,,0x100

[GPIO_Service_Inst]
DisplayName    = %GPIO.SvcDesc%
ServiceType    = %SERVICE_KERNEL_DRIVER%
StartType      = %SERVICE_DEMAND_START%
ErrorControl   = %SERVICE_ERROR_NORMAL%
ServiceBinary  = %12%\msgpiowin32.sys
LoadOrderGroup = Extended Base

[strings]
; localizable strings
MSFT                                        = "Microsoft"
GPIO.SvcDesc                                = "Common Driver for Buttons, DockMode and Laptop/Slate Indicator"
GPIO.Button.DeviceDesc                      = "GPIO Buttons Driver"
GPIO.DockModeIndicator.DeviceDesc           = "GPIO Dock Mode Indicator Driver"
GPIO.LaptopOrSlateModeIndicator.DeviceDesc  = "GPIO Laptop or Slate Indicator Driver"
GPIO.Button_Injection_DeviceDesc            = "Sideband GPIO Buttons Injection Device"

; non-localizable strings
SPSVCINST_TAGTOFRONT   = 0x00000003
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER  = 1
SERVICE_BOOT_START     = 0
SERVICE_SYSTEM_START   = 1
SERVICE_DEMAND_START   = 3
SERVICE_ERROR_NORMAL   = 1
SERVICE_ERROR_IGNORE   = 0
SERVICE_ERROR_CRITICAL = 3
REG_EXPAND_SZ          = 0x00020000
REG_DWORD              = 0x00010001
REG_SZ                 = 0x00000000
