Поделиться через


функция 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. В противном случае возвращается один из кодов ошибок с префиксом CR_, определенных в Cfgmgr32.h.

Комментарии

Чтобы перечислить все дочерние элементы devnode в дереве устройств локального компьютера, сначала вызовите CM_Get_Child , чтобы получить дескриптор экземпляра устройства к первому дочернему узлу, а затем вызовите CM_Get_Sibling , чтобы получить дескрипторы для остальных дочерних узлов.

Использование дескрипторов экземпляров устройств

Дескриптор экземпляра устройства, используемый с функциями диспетчера конфигурации PnP , привязан к дескрипторам компьютера следующим образом:

  • Все дескрипторы экземпляров локального устройства привязаны к дескрипторе локального компьютера с значением NULL.
  • При использовании дескриптора удаленного компьютера для получения дескриптора экземпляра устройства результирующий дескриптор удаленного устройства привязывается к дескриптору удаленного компьютера.
  • Дескриптор экземпляра устройства можно использовать только с дескриптором компьютера, к которому он привязан.
  • Дескриптор экземпляра устройства можно использовать с другим дескриптором экземпляра устройства, только если оба дескриптора экземпляра устройства привязаны к одному и тому же дескриптору компьютера.
Чтобы получить дескриптор экземпляра устройства, привязанный к локальному компьютеру, выполните одно из следующих действий.
  • Используйте одну из следующих функций, которые получают только дескрипторы экземпляра локального устройства: CM_Locate_DevNode, CM_Get_Child, CM_Get_Parent или CM_Get_Sibling.
  • Чтобы получить дескриптор локального экземпляра устройства, используйте одну из следующих функций, которая получает дескриптор локального экземпляра устройства: CM_Locate_DevNode_Ex, CM_Get_Child_Ex, CM_Get_Parent_Ex или CM_Get_Sibling_Ex.
Вы также можете использовать функции установки устройства для получения дескрипторов экземпляра локального устройства из набора сведений об устройствах, привязанного к локальному компьютеру. Выполните следующие шаги:
  1. Получите набор сведений об устройствах, привязанный к локальному компьютеру. (Дескриптор экземпляра устройства, полученный из набора сведений об устройствах, привязывается к дескрипторе компьютера, к которому привязан набор сведений об устройстве. Дескриптор компьютера для набора сведений об устройстве можно получить из элемента RemoteMachineHandle структуры SP_DEVINFO_LIST_DETAIL_DATA . Для набора сведений о локальном устройстве, привязанного к локальному компьютеру, значение RemoteMachineHandle равно NULL. Вызовите SetupDiGetDeviceInfoListDetail , чтобы получить структуру SP_DEVINFO_LIST_DETAIL_DATA.)
  2. Получите структуру SP_DEVINFO_DATA для экземпляра устройства в наборе сведений об устройстве.
  3. Получите дескриптор экземпляра устройства для экземпляра устройства из элемента DevInst структуры SP_DEVINFO_DATA.

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть cfgmgr32.h (включая Cfgmgr32.h)
Библиотека Cfgmgr32.lib; OneCoreUAP.lib в Windows 10
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