Appendix B: An Example of a Vendor-Provided INF File for Use in Windows Vista

This appendix includes an example of how to implement a vendor-provided INF file that references Bth.inf. This particular example is implemented to install a radio that is compatible with version 2.0 plus EDR of the Bluetooth specification in Windows XP or Windows Vista. The INF files for other types of Bluetooth devices are similar.

This INF file can be used to install the device on the following versions of Windows:

  • All SKUs of the 32-bit version of Windows XP SP2 and later service packs.
  • All SKUs of the 64-bit version of Windows XP
  • All SKUs of Windows Vista
Note  : This INF file cannot be used with Windows 2000, Windows Server 2003, or any versions of Windows XP that have not been upgraded to at least SP2. Also, a vendor-provided INF file is not necessary for Windows 7 because any USB device that has a USB\Class_E0&SubClass_01&Prot_01 hardware ID will install as a Generic Bluetooth Adapter in Windows 7.

For an explanation of the highlighted sections and directives, see the numbered notes after the following sample:

; XYZ Vendor INF File for Bluetooth Radio
; A sample INF for a stand-alone Bluetooth radio that does not
; have native Windows Vista support

; [1]
Signature            = "$Windows NT$"
Provider             = %ProviderName%
Class                = Bluetooth
CLASSGUID            = {e0cbf06c-cd8b-4647-bb8a-263b43f0f974};
DriverVer            = 10/28/2006,                    ;
CatalogFile.NT     = BTHXYZ1.CAB



%ManufacturerName% = XYZBth,NT.5.1,NTx86,NTamd64

; Match on a hardware ID generated by the device, for x86 and x64.

; [2]
%BthRadio1%        = Bt1.NT.5.1, USB\VID_xxxx&PID_yyyy
% BthRadio1%       = Bt1.NT.5.1, USB\VID_xxxx&PID_yyyy
% BthRadio1%       = Bt1.NT.5.1, USB\VID_xxxx&PID_yyyy

; Windows XP specific sections -------------------------

; [3]
include         = bth.inf
needs           = BthUsb.NT

include     = bth.inf
needs       = BthUsb.NT.HW
DelReg      = DeleteRegKeys

include     = bth.inf
needs       = BthUsb.NT.Services

; [4]
; Delete support for the Microsoft FaxService

; While strings are localizable, in this sample INF, we have
; not created any localized strings.
ProviderName     = "Vendor XYZ (c)"
ManufacturerName = "Vendor XYZ (c)"
BthRadio1        = "Bluetooth 2.0+EDR Model 3.2 from XYZ (c)"
SourceDisk       = "Windows Vista CD"


  1. The Version section should have the CLASSGUID and DriverVer directives set as follows:
    • CLASSGUID: Use the Microsoft class GUID for Bluetooth devices ({e0cbf06c cd8b-4647-bb8a-263b43f0f974}), not a third-party GUID.
    • DriverVer: If you want to supersede the default in-box driver, the driver version must be set to provide a higher ranking match than what is in Bth.inf. For more information about configuring a driver to supersede the default in box driver, see “Installing Private Builds of In-Box Drivers (Windows Vista and Later)” on the MSDN Web site.
  2. Hardware IDs. The combination of the VID and the PID must be unique to the manufacturer and device. This ensures that the same hardware ID does not correspond to multiple devices.
  3. Include and Needs directives. The Include directives in these three sections reference Bth.inf. The Needs directives indicate which sections from Bth.inf should be processed during device installation.
  4. The DelReg directive, which references the DeleteRegKeys section, deletes registry keys or values that prevent Windows from creating a PDO or devnode for a device. For example, the fax service profile is currently on the Windows Vista list of unsupported services, so it is a value of the UnsupportedServices registry key. This example deletes the fax services profile from the UnsupportedServices key, which lets Windows create a devnode for the device.

We strongly recommend that you run the latest WHQL tests on the device and INF file and publish the INF file package on Windows Update. This ensures that customers can automatically download the INF file from the Internet when they connect their new Bluetooth radio to their computer.



Send comments about this topic to Microsoft