gpt4 book ai didi

windows - 将 SetupDiSetDeviceRegistryProperty 与 SPDRP_HARDWAREID 结合使用

转载 作者:可可西里 更新时间:2023-11-01 14:23:59 25 4
gpt4 key购买 nike

SetupDiSetDeviceRegistryProperty 的文档功能说,

The following values are reserved for use by the operating system and cannot be used in the Property parameter ... SPDRP_HARDWAREID

但是,有很多代码示例,包括 MS DevCon将此函数与 SPDRP_HARDWAREID 参数一起使用的实用程序,即:

SetupDiSetDeviceRegistryProperty(DeviceInfoSet, &DeviceInfoData, SPDRP_HARDWAREID, (LPBYTE)hwIdList, (lstrlen(hwIdList)+1+1)*sizeof(TCHAR)))

他们还有一个 article这建议这样做:

If an installer detects a non-PnP device, the installer should select a driver for the device as follows: create a device information element (SetupDiCreateDeviceInfo), set the SPDRP_HARDWAREID property by calling SetupDiSetDeviceRegistryProperty

我想(并且确实)使用此功能为我的虚拟设备设置硬件 ID。问题是 - 它是手册中的拼写错误,还是某种不受支持的行为,因此它可以随时停止工作?

最佳答案

TL;DR:如果您正在创建一个root-enumerated device节点,您可以自行设置SPDRP_HARDWAREID/SPDRP_COMPATIBLEIDS通过调用 SetupDiSetDeviceRegistryProperty。否则不允许您这样做。


文档中的错误,已在某个时候修复。

今天 SetupDiSetDeviceRegistryProperty 的文档阅读:

SPDRP_HARDWAREID or SPDRP_COMPATIBLEIDS can only be used when DeviceInfoData represents a root-enumerated device. For other devices, the bus driver reports hardware and compatible IDs when enumerating a child device after receiving IRP_MN_QUERY_ID. [Emphasis mine]

...这正是 DevCon 所做的。

关于windows - 将 SetupDiSetDeviceRegistryProperty 与 SPDRP_HARDWAREID 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com