CM_Get_Child 函数 (cfgmgr32.h)

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

注意

在 Windows Vista 和更高版本的 Windows 中, 统一设备属性模型 使用 DEVPKEY_Device_Children属性键 来表示设备子级。 有关详细信息 ,请参阅检索设备关系

语法

CMAPI CONFIGRET CM_Get_Child(
  [out] PDEVINST pdnDevInst,
  [in]  DEVINST  dnDevInst,
  [in]  ULONG    ulFlags
);

参数

[out] pdnDevInst

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

[in] dnDevInst

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

[in] ulFlags

未使用,必须为零。

返回值

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

注解

若要枚举本地计算机设备树中开发节点的所有子节点,请先调用 CM_Get_Child 以获取第一个子节点的设备实例句柄,然后调用 CM_Get_Sibling 以获取其余子节点的句柄。

使用设备实例句柄

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

  • 所有本地设备实例句柄都绑定到 NULL 值的本地计算机句柄。
  • 如果使用远程计算机句柄获取设备实例句柄,则生成的远程设备实例句柄将绑定到远程计算机句柄。
  • 设备实例句柄只能与它绑定到的计算机句柄一起使用。
  • 仅当两个设备实例句柄绑定到同一个计算机句柄时,设备实例句柄才能与另一个设备实例句柄一起使用。
若要获取绑定到本地计算机的设备实例句柄,请执行下列操作之一。 还可以使用 设备安装函数 从绑定到本地计算机的设备信息集获取本地设备实例句柄。 执行以下步骤:
  1. 获取绑定到本地计算机的设备信息集。 (从设备信息集获取的设备实例句柄绑定到设备信息集绑定到的计算机句柄。可以从其SP_DEVINFO_LIST_DETAIL_DATA结构的 RemoteMachineHandle 成员获取设备信息集的计算机句柄。对于绑定到本地计算机的本地设备信息集,RemoteMachineHandle 的值为 NULL。调用 SetupDiGetDeviceInfoListDetail 以获取SP_DEVINFO_LIST_DETAIL_DATA structure.)
  2. 获取设备信息集中设备实例的 SP_DEVINFO_DATA 结构。
  3. 从 SP_DEVINFO_DATA 结构的 DevInst 成员获取设备实例的设备实例句柄。

要求

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

另请参阅

CM_Get_Child_Ex

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