CM_Reenumerate_DevNode 函数 (cfgmgr32.h)

CM_Reenumerate_DevNode 函数枚举由指定设备节点及其所有子节点标识的设备。

语法

CMAPI CONFIGRET CM_Reenumerate_DevNode(
  [in] DEVINST dnDevInst,
  [in] ULONG   ulFlags
);

参数

[in] dnDevInst

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

[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。

返回值

如果操作成功,函数将返回CR_SUCCESS。 否则,它将返回 Cfgmgr32.h 中定义的CR_前缀错误代码之一。

注解

如果指定的设备节点表示硬件或软件总线设备,则 PnP 管理器会查询设备的驱动程序以获取子级列表,然后尝试配置和启动以前未配置的任何子设备。 PnP 管理器还会启动意外删除不再存在的设备, (看到 IRP_MN_SURPRISE_REMOVAL) 。

此函数的调用方必须具有 SeLoadDriverPrivilege。 Microsoft Windows SDK 文档中介绍了 (特权。)

有关使用绑定到本地计算机的设备实例句柄的信息,请参阅 CM_Get_Child

要求

   
最低受支持的客户端 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 cfgmgr32.h (包括 Cfgmgr32.h)
Library Cfgmgr32.lib
DLL Cfgmgr32.dll

另请参阅

CM_Get_Child

CM_Reenumerate_DevNode_Ex

IRP_MN_SURPRISE_REMOVAL