Your browser does not allow scripts
Please click here to view a static table of contents without scripts
Implementation
Return to Introduction  Previous page  Next page
Location IDs are used to define the set of USB ports supported by FTDIBUS. The driver's default behaviour is that all USB ports are supported, but the default can be overridden via the binary value LocIds in the FTDIBUS service key.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FTDIBUS\Parameters\LocIds


LocIds is a binary value (REG_BINARY) that is interpreted as an array of Location IDs. A Location ID is a 32-bit unsigned integer (DWORD) that represents the location of the device in the USB tree. For example, if the driver creates a location string for the device of the form a&b&c, the Location ID will be 0x00000abc.

The driver can be installed with support for one Location ID by changing FTDIBUS.INF to include the following fragments:

[FtdiBus.NT.AddService]
AddReg = FtdiBus.NT.AddService.AddReg

[FtdiBus.NT.AddService.AddReg]
HKR,Parameters,"LocIds",1,23,00,00,00,00


Here, one USB port is supported, and Location ID 0x00000023 represents host controller 1 port 3.

The driver can be installed to support more than one Location ID by changing FTDIBUS.INF to include the following fragment:

[FtdiBus.NT.AddService]
AddReg = FtdiBus.NT.AddService.AddReg

[FtdiBus.NT.AddService.AddReg]
HKR,Parameters,"LocIds",1,21,00,00,00,32,00,00,00,11,00,00,00,00


Here, three USB ports are supported. Location ID 0x00000021 represents host controller 1 port 1. Location ID 0x00000032 represents host controller 2 port 2. Location ID 0x00000011 represents host controller 0 port 1.

Note that Location IDs are represented in the LocIds field as 4 hexadecimal bytes and in byte-reversed order.

Note also that although on USB host controllers are indexed from 0 and ports from 1, Location IDs are calculated by adjusting the host controller number so that it is indexed from 1.