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

[SourceDisksNames]
3426        = windows cd

[SourceDisksFiles]
Microsoft.Bluetooth.Profiles.HidOverGatt.dll = 3426

[DestinationDirs]
UMDriverCopy            = 12,UMDF ; copy to drivers\umdf

[ControlFlags]
ExcludeFromSelect   = *
BasicDriverOk       = *

; ================= Device section =====================

[Manufacturer]
%MfgName%   = Microsoft,NTamd64

[Microsoft.NTamd64]
%HidBthLE% = HidBthLEInputSuppressionModernStandby, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0921
%HidBthLE% = HidBthLEInputSuppressionModernStandby, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0c0f
%HidBthLE% = HidBthLE, BTHLEDevice\{00001812-0000-1000-8000-00805F9B34FB}
%HidBthLE% = BthLEInputSuppressionModernStandbyOptIn

[HidBthLEInputSuppressionModernStandby.NT]
Needs = HidBthLE.NT

[HidBthLEInputSuppressionModernStandby.NT.hw]
Needs  = HidBthLE.NT.hw
AddReg = BthLEInputSuppressionModernStandbyOptIn.AddReg

[HidBthLEInputSuppressionModernStandby.NT.CoInstallers]
Needs = HidBthLE.NT.CoInstallers

[HidBthLEInputSuppressionModernStandby.NT.Services]
Needs = HidBthLE.NT.Services

[HidBthLE.NT]
CopyFiles   = UMDriverCopy

[HidBthLE.NT.hw]
AddReg      = HidBthLE_AddReg

[HidBthLE_AddReg]
HKR,,"LowerFilters",                 0x00010008, "WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND
HKR,,"RetainWWIrpWhenDeviceAbsent",  0x00010001, 1
HKR,,"HighDutyCycleScanWindow",      0x00010001, 0x12     ;  11.25 ms
HKR,,"HighDutyCycleScanInterval",    0x00010001, 0x24     ;  22.50 ms
HKR,,"LowDutyCycleScanWindow",       0x00010001, 0x12     ;  11.25 ms
HKR,,"LowDutyCycleScanInterval",     0x00010001, 0x400    ; 640.00 ms
HKR,,"LinkSupervisionTimeout",       0x00010001, 0xC8     ;2000.00 ms 
HKR,,"ConnectionLatency",            0x00010001, 0x00
HKR,,"ConnectionIntervalMin",        0x00010001, 0x06
HKR,,"ConnectionIntervalMax",        0x00010001, 0x0c

[HidBthLE.NT.CoInstallers]
AddReg      = CoInstaller_AddReg

[HidBthLE.NT.Services]
AddService  = WUDFRd,0x000001f8,WUDFRD_ServiceInstall  
AddService  = mshidumdf,0x000001fa,mshidumdf_Service_Inst,HidBthLE_EventLog_Inst

; ================= Services section =====================

[WUDFRD_ServiceInstall]
DisplayName     = %WudfRdDisplayName%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\WUDFRd.sys
LoadOrderGroup  = Base

[mshidumdf_Service_Inst]
DisplayName     = %HidBthLE.SvcDesc%
ServiceType     = 1                  ; SERVICE_KERNEL_DRIVER
StartType       = 3                  ; SERVICE_DEMAND_START
ErrorControl    = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary   = %12%\mshidumdf.sys
LoadOrderGroup  = Base


[HidBthLE_EventLog_Inst]
AddReg      = HidBthLE_EventLog_Inst.AddReg

[HidBthLE_EventLog_Inst.AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\Drivers\umdf\Microsoft.Bluetooth.Profiles.HidOverGatt.dll"
HKR,,TypesSupported,0x00010001,7

; ================= WDF section =====================

[HidBthLEInputSuppressionModernStandby.NT.Wdf]
Needs = HidBthLE.NT.Wdf

[HidBthLE.NT.Wdf]
UmdfService                 = HidOverGatt, HidBthLE_Install
UmdfServiceOrder            = HidOverGatt
UmdfKernelModeClientPolicy  = AllowKernelModeClients
UmdfFileObjectPolicy        = AllowNullAndUnknownFileObjects
UmdfFsContextUsePolicy      = CanUseFsContext2
UmdfHostPriority            = PriorityHigh
UmdfMethodNeitherAction	    = Copy

[HidBthLE_Install]
UmdfLibraryVersion  = 2.15.0
ServiceBinary       = "%12%\UMDF\Microsoft.Bluetooth.Profiles.HidOverGatt.dll"

; ================= copy files =====================

[UMDriverCopy]
Microsoft.Bluetooth.Profiles.HidOverGatt.dll,,,0x100

[CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000,"WUDFCoInstaller.dll"

; ================= Optional Features =====================

; Input Suppression on Modern Standby
[BthLEInputSuppressionModernStandbyOptIn]
Needs=BthLEInputSuppressionModernStandbyOptIn.Hw

[BthLEInputSuppressionModernStandbyOptIn.Hw]
AddReg=BthLEInputSuppressionModernStandbyOptIn.AddReg

[BthLEInputSuppressionModernStandbyOptIn.AddReg]
HKR,,BthLEInputSuppressionModernStandbyOptIn,0x10001,1

;---------------------------------------------------------------;

[Strings]

;
; Localizable
;
MSFT                = "Microsoft"
MfgName             = "Microsoft"
HidBthLE.SvcDesc    = "Service for HID over Bluetooth Low Energy devices"
WudfRdDisplayName   = "Windows Driver Foundation - User-mode Driver Framework Reflector"
HidBthLE = "Bluetooth Low Energy GATT compliant HID device"
