CM_Reenumerate_DevNode_Ex 函数 (cfgmgr32.h)
[从 Windows 8 和 Windows Server 2012 开始,此函数已弃用。 请改 用 CM_Reenumerate_DevNode 。]
CM_Reenumerate_DevNode_Ex 函数枚举由指定设备节点及其所有子节点标识的设备。
语法
CMAPI CONFIGRET CM_Reenumerate_DevNode_Ex(
[in] DEVINST dnDevInst,
[in] ULONG ulFlags,
[in, optional] HMACHINE hMachine
);
参数
[in] dnDevInst
调用方提供的设备实例句柄,绑定到 hMachine 提供的计算机句柄。
[in] ulFlags
调用方提供的标志,指定应如何重新进行。 此参数可以设置为以下标志的组合,如前所述:
CM_REENUMERATE_ASYNCHRONOUS
应异步进行重新调用。 在 PnP 管理器收到恢复请求后,立即返回对此函数的调用。 如果设置了此标志,则不应同时设置CM_REENUMERATE_SYNCHRONOUS标志。
CM_REENUMERATE_NORMAL
指定默认的重新执行行为,其中,以同步方式进行重新执行。 此标志当前等效于 CM_REENUMERATE_SYNCHRONOUS。
CM_REENUMERATE_RETRY_INSTALLATION
指定即插即用应再次尝试安装指定子树中检测到但尚未配置、标记为需要重新安装或必须完成安装的任何设备。 此标志 可以与CM_REENUMERATE_SYNCHRONOUS 标志 或 CM_REENUMERATE_ASYNCHRONOUS标志一起设置。
使用此标志时必须格外小心,因为它可能导致 PnP 管理器提示用户执行任何此类设备的安装。 目前,只有 设备管理器 和硬件向导等组件使用此标志,以允许用户重试安装可能已检测到但当前尚未安装的设备。
CM_REENUMERATE_SYNCHRONOUS
应同步进行重新调用。 当指定子树中的所有设备都已恢复时,将返回对此函数的调用。 如果设置了此标志,则不应同时设置CM_REENUMERATE_ASYNCHRONOUS标志。 此标志当前等效于 CM_REENUMERATE_NORMAL。
[in, optional] hMachine
调用方提供的计算机句柄,调用方提供的设备实例句柄绑定到该句柄。
返回值
如果操作成功,函数将返回CR_SUCCESS。 否则,它将返回 Cfgmgr32.h 中定义的CR_前缀错误代码之一。
注解
如果指定的设备节点表示硬件或软件总线设备,则 PnP 管理器会查询设备的驱动程序以获取子级列表,然后尝试配置和启动以前未配置的任何子设备。 PnP 管理器还会启动意外删除不再存在的设备, (看到 IRP_MN_SURPRISE_REMOVAL) 。
此函数的调用方必须具有 SeLoadDriverPrivilege。 Microsoft Windows SDK 文档中介绍了 (特权。)
有关使用绑定到本地或远程计算机的设备实例句柄的信息,请参阅 CM_Get_Child_Ex。
Windows 8 和 Windows Server 2012 及更高版本的操作系统中删除了访问远程计算机的功能,因此在这些版本的 Windows 上运行时,无法访问远程计算机。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。 |
目标平台 | 桌面 |
标头 | cfgmgr32.h (包括 Cfgmgr32.h) |
Library | Cfgmgr32.lib |
DLL | Cfgmgr32.dll |