Typically, your AddDevice routine gets called because your virtual device is enumerated by the system root bus when the system boots. Your hardware ID would be of the form "ROOT\my-virtual-device-name". There are several examples of this in the WDK samples.
-Brian
Azius Developer Training www.azius.com Windows device driver, internals, security, & forensics training and consulting. Blog at www.azius.com/blog