PnP 管理器如何确定适当的函数 driver?
How does PnP manager determine the appropriate function driver?
我正在学习WindowsDriver的加载过程。
但是我看不懂下面文章的一部分。
本文中,有如下描述。
"4. PnP 管理器为设备加载适当的函数 driver 和任何可选过滤器 driver。"
我对以上描述有疑问。
PnP 管理器如何确定适当的功能driver?
例如,
当 USB 存储器插入 Windows PC 时,PnP 管理器将在加载 driver 相关 USB 后加载 disk.sys。
在这种情况下,我想知道为什么PnP manager可以判断设备对应disk.sys.
(在注册表中看到某处?向总线发送一些请求 driver?等等......)
当总线驱动程序检测并报告 PDO 设备 PnP 管理器发送几个 IRP_MJ_PNP
to PDO device. including IRP_MN_QUERY_ID
for get Device Identification Strings
然后以
形式格式化注册表项路径
\REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Enum\<BusQueryDeviceID>\<BusQueryInstanceID>
代替 <BusQueryDeviceID>
设备为 BusQueryDeviceID
返回的字符串并代替 <BusQueryInstanceID>
设备为 BusQueryInstanceID
返回的字符串 (Parameters.QueryId.IdType
)
此密钥已打开或创建。然后查询 BusQueryHardwareIDs
和 BusQueryCompatibleIDs
。此查询的结果保存在 HardwareID
和 CompatibleIDs
REG_MULTI_SZ
值中。
然后 PnP 管理器在此键下查找 Service
REG_SZ
值 - 如果它已经存在 - 驱动程序 (\REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Services\<Service>
) 加载并 AddDevice
调用这个 PDO。如果此值尚未设置 - 已通过系统中安装的 inf 文件进行搜索 - 以获得最佳匹配 HardwareID
和 CompatibleIDs
。如果找到驱动程序 - 结果保存在 Service
REG_SZ
值下,下次不搜索
我正在学习WindowsDriver的加载过程。
但是我看不懂下面文章的一部分。
本文中,有如下描述。
"4. PnP 管理器为设备加载适当的函数 driver 和任何可选过滤器 driver。"
我对以上描述有疑问。
PnP 管理器如何确定适当的功能driver?
例如,
当 USB 存储器插入 Windows PC 时,PnP 管理器将在加载 driver 相关 USB 后加载 disk.sys。
在这种情况下,我想知道为什么PnP manager可以判断设备对应disk.sys.
(在注册表中看到某处?向总线发送一些请求 driver?等等......)
当总线驱动程序检测并报告 PDO 设备 PnP 管理器发送几个 IRP_MJ_PNP
to PDO device. including IRP_MN_QUERY_ID
for get Device Identification Strings
然后以
形式格式化注册表项路径\REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Enum\<BusQueryDeviceID>\<BusQueryInstanceID>
代替 <BusQueryDeviceID>
设备为 BusQueryDeviceID
返回的字符串并代替 <BusQueryInstanceID>
设备为 BusQueryInstanceID
返回的字符串 (Parameters.QueryId.IdType
)
此密钥已打开或创建。然后查询 BusQueryHardwareIDs
和 BusQueryCompatibleIDs
。此查询的结果保存在 HardwareID
和 CompatibleIDs
REG_MULTI_SZ
值中。
然后 PnP 管理器在此键下查找 Service
REG_SZ
值 - 如果它已经存在 - 驱动程序 (\REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Services\<Service>
) 加载并 AddDevice
调用这个 PDO。如果此值尚未设置 - 已通过系统中安装的 inf 文件进行搜索 - 以获得最佳匹配 HardwareID
和 CompatibleIDs
。如果找到驱动程序 - 结果保存在 Service
REG_SZ
值下,下次不搜索