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

调用方提供的计算机句柄,调用方提供的设备实例句柄绑定到该句柄。

注意从Windows 8和Windows Server 2012开始,不支持使用此函数访问远程计算机,因为此功能已被删除。
 

返回值

如果操作成功,函数将返回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

另请参阅

CM_Get_Child_Ex

CM_Reenumerate_DevNode