CM_Get_Child_Ex 函数 (cfgmgr32.h)

[从 Windows 8 和 Windows Server 2012 开始,此函数已弃用。 请改 用CM_Get_Child 。]

CM_Get_Child_Ex函数用于检索指定设备节点的第一个子节点的设备实例句柄, (本地或远程计算机的设备树中的 devnode) 。

语法

CMAPI CONFIGRET CM_Get_Child_Ex(
  [out]          PDEVINST pdnDevInst,
  [in]           DEVINST  dnDevInst,
  [in]           ULONG    ulFlags,
  [in, optional] HMACHINE hMachine
);

参数

[out] pdnDevInst

调用方提供的指向此函数检索的子节点的设备实例句柄的指针。 检索到的句柄绑定到 hMachine 提供的计算机句柄。 请参阅 “备注 ”部分。

[in] dnDevInst

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

[in] ulFlags

未使用,必须为零。

[in, optional] hMachine

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

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

返回值

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

注解

若要枚举本地或远程计算机设备树中某个开发节点的所有子节点,首先调用 CM_Get_Child_Ex 以获取第一个子节点的句柄,然后调用 CM_Get_Sibling_Ex 以获取其余子节点的句柄。

使用设备实例句柄

PnP 配置管理器函数 一起使用的设备实例句柄绑定到计算机句柄,如下所示:

  • 所有本地设备实例句柄都绑定到 NULL 值的本地计算机句柄。
  • 如果使用远程计算机句柄获取设备实例句柄,则生成的远程设备实例句柄将绑定到远程计算机句柄。
  • 设备实例句柄只能与它绑定到的计算机句柄一起使用。
  • 仅当两个设备实例句柄绑定到同一个计算机句柄时,设备实例句柄才能与另一个设备实例句柄一起使用。
使用 CM_Connect_Machine 获取用于远程设备实例句柄的远程计算机句柄。

若要获取本地或远程设备实例句柄,请执行下列操作之一。

还可以使用 设备安装函数 获取设备实例句柄。 执行以下步骤:
  1. 获取设备信息集。
  2. 获取设备信息集中设备实例的 SP_DEVINFO_DATA 结构。
  3. 从 SP_DEVINFO_DATA 结构的 DevInst 成员获取设备实例的设备实例句柄。
  4. 获取设备实例句柄绑定到的计算机句柄。 从设备信息集获取的设备实例句柄绑定到设备信息集绑定到的计算机句柄。 可以从其SP_DEVINFO_LIST_DETAIL_DATA结构的 RemoteMachineHandle 成员获取设备信息集的计算机句柄。 (调用 SetupDiGetDeviceInfoListDetail 以获取SP_DEVINFO_LIST_DETAIL_DATA structure.)
Windows 8 和 Windows Server 2012 及更高版本的操作系统中删除了访问远程计算机的功能,因此在这些版本的 Windows 上运行时,无法访问远程计算机。

要求

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

另请参阅

CM_Get_Child

CM_Get_Parent

CM_Get_Parent_Ex

CM_Get_Sibling

CM_Get_Sibling_Ex

CM_Locate_DevNode

CM_Locate_DevNode_Ex

SP_DEVINFO_DATA

SP_DEVINFO_LIST_DETAIL_DATA

SetupDiGetDeviceInfoListDetail