CM_Get_Child_Ex関数 (cfgmgr32.h)

[Windows 8とWindows Server 2012以降、この関数は非推奨となりました。 代わりに CM_Get_Child を使用してください。]

CM_Get_Child_Ex関数は、ローカルまたはリモート コンピューターのデバイス ツリー内の指定されたデバイス ノード (devnode) の最初の子ノードへのデバイス インスタンス ハンドルを取得するために使用されます

構文

CMAPI CONFIGRET CM_Get_Child_Ex(
  [out]          PDEVINST pdnDevInst,
  [in]           DEVINST  dnDevInst,
  [in]           ULONG    ulFlags,
  [in, optional] HMACHINE hMachine
);

パラメーター

[out] pdnDevInst

この関数が取得する子ノードへのデバイス インスタンス ハンドルへの呼び出し元指定ポインター。 取得したハンドルは、 hMachine によって提供されるマシン ハンドルにバインドされます。 「解説」セクション 参照してください。

[in] dnDevInst

hMachine によって提供されるマシン ハンドルにバインドされている、呼び出し元から提供されるデバイス インスタンス ハンドル。

[in] ulFlags

使用しません。0 にする必要があります。

[in, optional] hMachine

呼び出し元が指定したデバイス インスタンス ハンドルがバインドされている呼び出し元指定のマシン ハンドル。

メモこの機能は削除されたため、この関数を使用してリモート マシンにアクセスすることは、Windows 8 および Windows Server 2012 以降ではサポートされていません。
 

戻り値

操作が成功した場合、関数は CR_SUCCESSを返します。 それ以外の場合は、 Cfgmgr32.h で定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。

注釈

ローカル またはリモート コンピューターのデバイス ツリー内の devnode のすべての子を列挙するには、最初に CM_Get_Child_Ex を呼び出して最初の子ノードへのハンドルを取得し、 次に CM_Get_Sibling_Ex を呼び出して、残りの子のハンドルを取得します。

デバイス インスタンス ハンドルの使用

PnP 構成マネージャー関数で使用するデバイス インスタンス ハンドルは、次のようにマシン ハンドルにバインドされます。

  • すべてのローカル デバイス インスタンス ハンドルは、NULL 値のローカル コンピューター ハンドルにバインドされます。
  • リモート マシン ハンドルを使用してデバイス インスタンス ハンドルを取得する場合、結果のリモート デバイス インスタンス ハンドルはリモート コンピューター ハンドルにバインドされます。
  • デバイス インスタンス ハンドルは、バインド先のマシン ハンドルでのみ使用できます。
  • デバイス インスタンス ハンドルは、両方のデバイス インスタンス ハンドルが同じマシン ハンドルにバインドされている場合にのみ、別のデバイス インスタンス ハンドルと共に使用できます。
CM_Connect_Machineを使用して、リモート デバイス インスタンス ハンドルで使用するリモート コンピューター ハンドルを取得します。

ローカルまたはリモート のデバイス インスタンス ハンドルを取得するには、次のいずれかの操作を行います。

デバイス インストール機能を使用して、デバイス インスタンス ハンドルを取得することもできます。 手順は次のとおりです。
  1. デバイス情報セットを取得します。
  2. デバイス情報セット内のデバイス インスタンスの SP_DEVINFO_DATA 構造を取得します。
  3. SP_DEVINFO_DATA構造体の DevInst メンバーから、デバイス インスタンスのデバイス インスタンス ハンドルを取得します。
  4. デバイス インスタンス ハンドルがバインドされているマシン ハンドルを取得します。 デバイス情報セットから取得されたデバイス インスタンス ハンドルは、デバイス情報セットがバインドされているマシン ハンドルにバインドされます。 デバイス情報セットのマシン ハンドルは、そのSP_DEVINFO_LIST_DETAIL_DATA構造体の RemoteMachineHandle メンバーから取得します。 ( SetupDiGetDeviceInfoListDetail を呼び出して、SP_DEVINFO_LIST_DETAIL_DATA構造体を取得します)。
リモート マシンにアクセスするための機能は、Windows 8およびWindows Server 2012以降のオペレーティング システムで削除されているため、これらのバージョンの Windows で実行している場合はリモート マシンにアクセスできません。

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header cfgmgr32.h (Cfgmgr32.h を含む)
Library Cfgmgr32.lib
[DLL] Cfgmgr32.dll

こちらもご覧ください

CM_Get_Child

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