加载PNP设备

1) 插入设备,向bus driver发IRP_MJ_IO_CONTROL的IRP。
2) bus driver创建设备,加入自己的子设备列表。
3) bus driver调用IoInvalidateDeviceRelations来通知pnp manager更新他的设备树。
4) pnp manager发送一个IRP_MN_QUERY_DEVICE_RELATIONS的IRP。
5) bus driver处理该IRP。
6) pnp manager根据该IRP返回的信息来更新自己的设备树,创建新设备的节点。
7) pnp manager发送一系列IRP来收集新设备的信息来配置设备:

8) pnp manager在注册表中创建如下项:

HKLM\System\CurrentControlSet\Enum\<enumerator>\<deviceID>

HKLM\System\CurrentControlSet\Enum\<enumerator>\<deviceID>\<instanceID>

posted @ 2010-07-28 16:24  潘东子  阅读(625)  评论(0编辑  收藏  举报