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 値のローカル コンピューター ハンドルにバインドされます。
  • リモート マシン ハンドルを使用してデバイス インスタンス ハンドルを取得する場合、結果のリモート デバイス インスタンス ハンドルはリモート コンピューター ハンドルにバインドされます。
  • デバイス インスタンス ハンドルは、バインド先のマシン ハンドルでのみ使用できます。
  • デバイス インスタンス ハンドルは、両方のデバイス インスタンス ハンドルが同じマシン ハンドルにバインドされている場合にのみ、別のデバイス インスタンス ハンドルと共に使用できます。
ローカル コンピューターにバインドされているデバイス インスタンス ハンドルを取得するには、次のいずれかの操作を行います。 また、デバイス インストール機能を使用して、ローカル コンピューターにバインドされているデバイス情報セットからローカル デバイス インスタンス ハンドルを取得することもできます。 手順は次のとおりです。
  1. ローカル コンピューターにバインドされているデバイス情報セットを取得します。 (デバイス情報セットから取得したデバイス インスタンス ハンドルは、デバイス情報セットがバインドされているマシン ハンドルにバインドされます。デバイス情報セットのマシン ハンドルは、そのSP_DEVINFO_LIST_DETAIL_DATA構造体の RemoteMachineHandle メンバーから取得します。ローカル コンピューターにバインドされているローカル デバイス情報セットの場合、RemoteMachineHandle の値は NULL ですSetupDiGetDeviceInfoListDetail を呼び出して、SP_DEVINFO_LIST_DETAIL_DATA構造体を取得します)。
  2. デバイス情報セット内のデバイス インスタンスの SP_DEVINFO_DATA 構造を取得します。
  3. SP_DEVINFO_DATA構造体の DevInst メンバーから、デバイス インスタンスのデバイス インスタンス ハンドルを取得します。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header 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