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
使用しません。0 にする必要があります。
戻り値
操作が成功した場合、関数は 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構造体を取得します)。
- デバイス情報セット内のデバイス インスタンスの SP_DEVINFO_DATA 構造を取得します。
- SP_DEVINFO_DATA構造体の DevInst メンバーから、デバイス インスタンスのデバイス インスタンス ハンドルを取得します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | cfgmgr32.h (Cfgmgr32.h を含む) |
Library | Cfgmgr32.lib;Windows 10の OneCoreUAP.lib |
[DLL] | CfgMgr32.dll |