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_前置錯誤碼。
備註
若要列舉本機計算機裝置樹狀結構中 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。
- 取得系結至本機計算機的裝置資訊集。 (從裝置資訊集取得的裝置實例句柄會系結至裝置資訊集所系結的計算機句柄。您可以從其SP_DEVINFO_LIST_DETAIL_DATA結構的 RemoteMachineHandle 成員取得裝置資訊的機器句柄。針對系結至本機計算機的本機裝置資訊集,RemoteMachineHandle 的值是 NULL。呼叫 SetupDiGetDeviceInfoListDetail 以取得SP_DEVINFO_LIST_DETAIL_DATA structure.)
- 取得裝置資訊集中裝置實例的 SP_DEVINFO_DATA 結構。
- 從 SP_DEVINFO_DATA 結構的 DevInst 成員取得裝置實例的裝置實例句柄。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Microsoft Windows 2000 和更新版本的 Windows 中使用。 |
目標平台 | Universal |
標頭 | cfgmgr32.h (包含 Cfgmgr32.h) |
程式庫 | Cfgmgr32.lib;Windows 10 上的 OneCoreUAP.lib |
Dll | CfgMgr32.dll |