Who and when will trigger the loading of Virtual device driver

Recently , I am learning about VAD development and have a question of device stack construction.

In the procedure of the construction of Device stack , bus FDO is able to detect the attached devices , and create the PDO of the device and accordingly trigger the loading of device driver … But as for a virtual device (saying VAD) the bus doesn’t detect it and impossible know when the PDO of virtual Device will be created , not to mention FDO.

My question is when/who will trigger loading virtual device driver.

Please someone share some ideas. thanks a lot .

All the below assumes we’re talking about a PnP-enabled virtual device:

Virtual devices rely on “the root enumerator” to load them. This is the PnP Manager itself.

Thus, when you create the INF for a virtual (AKA pseudo) device driver, you indicate the enumerator for the device (that is, the bus on which the device lives) is “Root”.

Peter
OSR