Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>First, to understand the order of drivers being loaded, you're recommended to switch the Device Manager into <em>View | Devices by Connection</em> mode.</p> <p>As you would notice, the devices are located below their bus driver. For PCI devices, it'll be "PCI bus". For USB devices, it would be their USB hub. Each bus driver has its own idea about how the identifier strings should be formatted:</p> <ul> <li>Device Instance Id</li> <li>Hardware Ids</li> <li>Compatible Ids</li> <li>Location, etc.</li> </ul> <p>It returns them in response to <code>IRP_MN_QUERY_ID</code> (<code>BusQueryInstanceID</code>, <code>BusQueryHardwareIDs</code>, <code>BusQueryCompatibleIDs</code>) and <code>IRP_MN_QUERY_DEVICE_TEXT</code> (<code>DeviceTextDescription</code>, <code>DeviceTextLocationInformation</code> etc.)</p> <p>Of course, since the bus driver enumerated the devices (i.e. created the child devices you're seeing) in the first place (through whatever standard interface appropriate for the bus; e.g. 'Get Device/String Descriptor' on USB), it knows their vendor ID, product ID etc.</p> <p>The device's driver does not have to be loaded at this time. In fact, it can't be loaded. The device IDs are precisely what instructs the PnP system as to which driver matches the device.</p> <p>As to localization:</p> <p>Unlike <code>IRP_MN_QUERY_ID</code>, which provides opaque strings intended for device matching, the <code>IRP_MN_QUERY_DEVICE_TEXT</code> information was indeed intended to be localized. For that purpose, you receive the requested Locale ID (LCID) in the input data (<code>Parameters.QueryDeviceText.LocaleId</code>).</p> <p>[As Alphaneo noted, a USB hub driver might pass this LCID onwards to the USB device (within a Get String Descriptor request), hoping that the USB device itself has localized strings.]</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload