Mini Kabibi Habibi

Current Path : C:/Windows/INF/
Upload File :
Current File : C:/Windows/INF/xinputhid.inf

��; Copyright (c) Microsoft Corporation. All rights reserved.

;

; xinputhid.INF file

;



[Version]

Signature="$WINDOWS NT$"

Class=HIDClass

ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}

Provider=%ProviderName%

PnpLockdown=1

DriverVer = 04/07/2025,10.0.19041.5794



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



[Manufacturer]

%ProviderName%=Microsoft,NTamd64



[Microsoft.NTamd64]

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&02e0

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&02fd

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b02

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b05

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b0c

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b13



; Note: the below PIDs are not currently in use but have been pre-allocated by the PID team. For a variety

; of reasons we can not use a Compatability ID for the loading of this driver, and so rely on individual

; hardware IDs, however this creates complications when releasing new BlueTooth devices since we need to 

; service windows and rely on user taking the windows update before their devices will be functional.

;

; So, we are solveing this issue by preallocating a block of BTC and BTLE PIDs and checking in their 

; hardware IDs to the current development branch of windows so that over time, we will get support for

; these devices in more and more shipping versions, and depending on the release date of any given device

; no servicing updates may be needed to support all the desired windows version.

;

; When releasing a new device, there are a few steps that must be taken:

;

; 1) email mshpidad@microsoft.com with details about the device so that they can update internal documenattion

;    with the device details since currently it will be listed as "Xbox PID Block".

;

; 2) Add stings to this inf, and dc1-controller, in the current dev branch to cause future versions of

;    windows to have a device specific string rather than the current generic string, although this

;    usually will not need to be serviced back unless the string is crititcally important. It is also important

;    to move the VID pid from the pre-allocated blocks to the block above this comment to ensure it is known that

;    the PID is now in use by a device.

;

; 3) If either the number of BTLE or BTC PIDS in this pre-allocation list drops below 3, include a request for

;    more PIDs in tthe email to mshpidad@microsoft.com with the device details to ensure there is always a large

;    number of xbox pids seeded within versions of windows to allow for device development.

;

; Additionaly, Note that this list is only for BT PIDs, USB PIDs, or gip PIDs for wireless only devices,

; should be allocated from mshpidad@microsoft.com as new devices are created, and inf updates are not needed to 

; load the required drivers since we have a Compatability ID for USB devices, and the xbox wireless devices do

; not use a function driver, only the 2 wirless adapters do, and both of their hardware IDs have entries in WU

; to download and load the correct driver, since they are not currently inbox.



; BTLE pre-allocated PIDS

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b20

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b21

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b22

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b23

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b24

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b25

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b26

%Btle_Bus.DeviceDesc%=Btle_Bus, BTHLEDevice\{00001812-0000-1000-8000-00805f9b34fb}_Dev_VID&02045e_PID&0b27



; BTC pre-allocated PIDS

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b28

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b29

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2A

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2B

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2C

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2D

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2E

%Bth_Bus.DeviceDesc%=Bth_Bus, BTHENUM\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002045e_PID&0b2F



; From xboxgip default appears with an GIP software PID

%VID_045E&PID_02D1.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_02D1&IG_00

%VID_045E&PID_02DD.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_02DD&IG_00

%VID_045E&PID_02E3.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_02E3&IG_00

%VID_045E&PID_02EA.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_02EA&IG_00

%VID_045E&PID_0B00.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_0B00&IG_00

%VID_045E&PID_0B0A.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_0B0A&IG_00

%VID_045E&PID_0B13.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_0B13&IG_00

%GIP_Hid.DeviceDesc%=GIP_Hid, HID\VID_045E&PID_02FF&IG_00

; Possibly scope to specific vendors, like HID\VID_045E&UP:0001_U:0005 for all MSFT HID game usage controllers

;%Managed_Hid.DeviceDesc%=Managed_Hid, HID_DEVICE_UP:0001_U:0005



;

; Format for each DDInstall subsection/section is

; All DDInstall common overrides

; Last XInputHid reference

; XInputhid specific values referenced from above reference

; Next required subsection/section

;



[Bth_Bus]

Include=hidbth.inf

Needs=HIDBTH_Inst.NT

CopyFiles=XInput_Hid.CopyFiles

AddReg=XInput_Hid.AddReg,Bth_Bus.AddReg



[Btle_Bus]

Include=hidbthle.inf

Needs=HidBthLE.NT

CopyFiles=XInput_Hid.CopyFiles

AddReg=XInput_Hid.AddReg,Btle_Bus.AddReg



[Btle_Bus.Wdf]

Include=hidbthle.inf

Needs=HidBthLE.NT.Wdf



[Managed_Hid]

CopyFiles=XInput_Hid.CopyFiles

AddReg=XInput_Hid.AddReg,Managed_Hid.AddReg



[GIP_Hid]

CopyFiles=XInput_Hid.CopyFiles

AddReg=XInput_Hid.AddReg,GIP_Hid.AddReg



; Unused for reference

[XInput_Hid]

CopyFiles=XInput_Hid.CopyFiles

AddReg=XInput_Hid.AddReg



[XInput_Hid.CopyFiles]

xinputhid.sys



;

; XInputHid property is a bitmask, from xinputhid.h

; Please keep in sync with xinputhid.h declaration

;//

;// Device properties to mark the type of device XInputHid is on top of

;// BusDevice means we're a focused bus filter driver for the IG_ problem

;// XInputCompatibleDevice means the device can be translated to XInput

;// GenericHidDevice means a device that is a HID device

;// GipRootedDevice means a device that is originated by GIP

;//

;typedef enum

;{

;    BusDevice = 0x1,

;    XInputCompatibleDevice = 0x2,

;    GenericHidDevice = 0x4,

;    GipRootedDevice = 0x8,

;    AndroidDevice = 0x10

;} XINPUTHID_DEVICEPROPERTY_FLAGS;

;

[Bth_Bus.AddReg]

HKR,,"DevicePropertyFlags", 0x00010001, 0x1



[Btle_Bus.AddReg]

HKR,,"DevicePropertyFlags", 0x00010001, 0x1



[XInput_Hid.AddReg]

HKR,,"DevicePropertyFlags", 0x00010001, 0xE

HKR,,"ConfigFlags", 0x00010001, 1



[Managed_Hid.AddReg]

HKR,,"DevicePropertyFlags", 0x00010001, 0x4



[GIP_Hid.AddReg]

HKR,,"DevicePropertyFlags", 0x00010001, 0xE



; copies of XInput_Hid for each DDInstall section

[Bth_Bus.HW]

Include=hidbth.inf

Needs=HIDBTH_Inst.NT.HW

AddReg=XInput_Hid.AddRegHW



[Btle_Bus.HW]

Include=hidbthle.inf

Needs=HidBthLE.NT.hw

AddReg=XInput_Hid.AddRegHW



[Managed_Hid.HW]

AddReg=XInput_Hid.AddRegHW

[GIP_Hid.HW]

AddReg=XInput_Hid.AddRegHW



[XInput_Hid.HW]

AddReg=XInput_Hid.AddRegHW



[XInput_Hid.AddRegHW]

HKR,,"UpperFilters",0x00010008,"xinputhid" ; REG_MULTI_SZ value



; copies of XInput_Hid for each DDInstall section

[Bth_Bus.Services]

Include=hidbth.inf

Needs=HIDBTH_Inst.NT.Services

AddService=xinputhid,,XInput_HidService ; filter driver



[Btle_Bus.Services]

Include=hidbthle.inf

Needs=HidBthLE.NT.Services

AddService=xinputhid,,XInput_HidService ; filter driver



[Managed_Hid.Services]

AddService=xinputhid,,XInput_HidService ; filter driver

[GIP_Hid.Services]

AddService=xinputhid,,XInput_HidService ; filter driver



[XInput_Hid.Services]

AddService=xinputhid,,XInput_HidService ; filter driver



[XInput_HidService]

DisplayName    = %xinputhid.SvcDesc%

ServiceType    = 1 ; SERVICE_KERNEL_DRIVER

StartType      = 3 ; SERVICE_DEMAND_START

ErrorControl   = 1 ; SERVICE_ERROR_NORMAL

ServiceBinary  = %12%\xinputhid.sys

AddReg         = XInput_Hid.AddReg

LoadOrderGroup = Base



;**********************************************************************

; Destination directories

;**********************************************************************

[DestinationDirs]

CopyFile.Sys    = 12

DefaultDestDir  = 12



[SourceDisksNames]

1=%Disk_Description%,,



[SourceDisksFiles]

xinputhid.sys = 1



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



[Strings]

ProviderName                     = "Microsoft"

Disk_Description                 = "XINPUT HID Filter Driver Installation Disk"

xinputhid.SvcDesc                = "XINPUT HID Filter Driver"

Bth_Bus.DeviceDesc               = "Bluetooth XINPUT compatible input device"

Btle_Bus.DeviceDesc              = "Bluetooth LE XINPUT compatible input device"

Gip_Hid.DeviceDesc               = "XINPUT compatible HID device"

VID_045E&PID_02D1.DeviceDesc     = "Xbox One Wireless Controller"

VID_045E&PID_02DD.DeviceDesc     = "Xbox One Wireless Controller"

VID_045E&PID_02E3.DeviceDesc     = "Xbox One Elite Wireless Controller"

VID_045E&PID_02EA.DeviceDesc     = "Xbox One Wireless Controller"

VID_045E&PID_0B00.DeviceDesc     = "Xbox One Wireless Controller"

VID_045E&PID_0B0A.DeviceDesc     = "Xbox Adaptive Controller"

VID_045E&PID_0B13.DeviceDesc     = "Xbox Wireless Controller"

Managed_Hid.DeviceDesc           = "Managed HID Gaming device"