Container IDs Generated from a Bus-Specific Unique ID
The preferred way to generate a container ID for a device is based on a bus-specific unique ID. This is the most precise and reliable method for generating container IDs.
The Plug and Play (PnP) manager uses this method if the following are true:
The device contains a bus-specific unique ID.
The bus driver for the device recognizes this unique ID as present and well formatted.
The bus driver can reliably hash the unique ID into a globally unique identifier (GUID), and returns this GUID in response to the IRP_MN_QUERY_ID function code when the Parameters.QueryId.IdType member of the IO_STACK_LOCATION structure is set to BusQueryContainerID.
Windows 7 and later versions of Windows provide inbox drivers for several of the most common bus types. This includes USB, Bluetooth, and PnP-X. For these bus types, the device is only required to include a bus-specific unique ID. The supplied Windows bus driver will then read the unique ID from the device and create a container ID.
The following topics describe how the inbox bus drivers generate container IDs for certain bus types: