次の方法で共有


CM_Get_Device_ID_ListW関数 (cfgmgr32.h)

CM_Get_Device_ID_List 関数は、ローカル コンピューターの デバイス インスタンス デバイス インスタンス ID の一覧を取得します。

構文

CMAPI CONFIGRET CM_Get_Device_ID_ListW(
  [in, optional] PCWSTR  pszFilter,
  [out]          PZZWSTR Buffer,
  [in]           ULONG   BufferLen,
  [in]           ULONG   ulFlags
);

パラメーター

[in, optional] pszFilter

コンピューターのデバイス インスタンス識別子 (ID) のサブセットに設定されている文字列、または NULLを する、呼び出し元が指定したポインター。 ulFlagsについては、次の説明を参照してください。

[out] Buffer

NULL で終了するデバイス インスタンス識別子文字列のセットを受信するバッファーのアドレス。 セットの末尾は、追加の NULLによって終了されます。 必要なバッファー サイズは、CM_Get_Device_ID_List_Sizeを呼び出すことによって取得する必要があります。

[in] BufferLen

Bufferで指定されたバッファーの呼び出し元が指定した長さ (文字数)。

[in] ulFlags

検索フィルターを指定する、呼び出し元が指定した次のいずれかのビット フラグ。

CM_GETIDLIST_FILTER_BUSRELATIONS

このフラグが設定されている場合、pszFilter デバイス インスタンス識別子を指定する必要があります。 この関数は、指定されたデバイス インスタンスの バス関係 のデバイス インスタンス ID を返します。

CM_GETIDLIST_FILTER_CLASS (Windows 7 以降のバージョンの Windows)

このフラグが設定されている場合、pszFilter には、GUID デバイス セットアップ クラスを指定する文字列が含まれます。 返されるリストには、プロパティ (CM_DRP_CLASSGUID 定数によって参照される) が指定されたデバイス セットアップ クラス GUID と一致するデバイス インスタンスが含まれています。

CM_DRP_CLASSGUID定数は、Cfgmgr32.hで定義されます。

CM_GETIDLIST_FILTER_PRESENT (Windows 7 以降のバージョンの Windows)

このフラグが設定されている場合、返されるリストには、システムに現在存在するデバイス インスタンスのみが含まれます。 この値は、CM_GETIDLIST_FILTER_CLASSなどの他の ulFlags 値と組み合わせることができます。

CM_GETIDLIST_FILTER_TRANSPORTRELATIONS (Windows 7 以降のバージョンの Windows)

このフラグが設定されている場合、pszFilter 複合デバイス ノードのデバイス インスタンス識別子 (devnode) を指定する必要があります。

この関数は、指定された複合開発ノードのトランスポート関係を表す devnode のデバイス インスタンス識別子を返します。

複合開発ノードとトランスポート関係の詳細については、次の 解説 セクションを参照してください。

CM_GETIDLIST_DONOTGENERATE

CM_GETIDLIST_FILTER_SERVICEでのみ使用されます。 設定されている場合、およびデバイス ツリーに指定されたサービスの devnode が含まれていない場合、このフラグは、関数がサービスの開発ノードを作成できないようにします。

CM_GETIDLIST_FILTER_EJECTRELATIONS

このフラグが設定されている場合、pszFilter デバイス インスタンス識別子を指定する必要があります。 この関数は、指定されたデバイス インスタンスの 放出関係 のデバイス インスタンス ID を返します。

CM_GETIDLIST_FILTER_ENUMERATOR

このフラグが設定されている場合、pszFilter デバイス列挙子の名前を指定し、必要に応じて、デバイス IDを指定する必要があります。 文字列形式は、ROOTROOT\*PNP0500など、EnumeratorName\DeviceIDです。

pszFilter 列挙子名のみを指定した場合、関数は列挙子に関連付けられている各デバイスのインスタンス デバイス インスタンス ID を返します。 列挙子の名前は、CM_Enumerate_Enumeratorsを呼び出すことによって取得できます。

pszFilter 列挙子と デバイス IDの両方を提供する場合、関数は、列挙子に関連付けられている指定したデバイスのインスタンスに対してのみ デバイス インスタンス ID を返します。

CM_GETIDLIST_FILTER_NONE

このフラグが設定されている場合、pszFilter は無視され、システム上のすべてのデバイスの一覧が返されます。

CM_GETIDLIST_FILTER_POWERRELATIONS

このフラグが設定されている場合、pszFilter デバイス インスタンス識別子を指定する必要があります。 この関数は、指定されたデバイス インスタンスの電源関係のデバイス インスタンス ID を返します。

CM_GETIDLIST_FILTER_REMOVALRELATIONS

このフラグが設定されている場合、pszFilter デバイス インスタンス識別子を指定する必要があります。 この関数は、指定されたデバイス インスタンスの 削除関係 のデバイス インスタンス ID を返します。

CM_GETIDLIST_FILTER_SERVICE

このフラグが設定されている場合、pszFilter は、Microsoft Windows サービス (通常はドライバー) の名前を指定する必要があります。 この関数は、指定されたサービスによって制御されるデバイス インスタンスのデバイス インスタンス ID を返します。

デバイス ツリーに指定されたサービスの devnode が含まれていない場合、この関数は既定で作成されることに注意してください。 この動作を抑制するには、CM_GETIDLIST_DONOTGENERATEも設定します。

検索フィルター フラグが指定されていない場合、関数はすべてのデバイス インスタンスのすべてのデバイス インスタンス ID を返します。

戻り値

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

備考

Windows 7 以降、パケット ベースのデータの複数のトランスポート パスをサポートするデバイスは、複合 デバイスと呼ばれ、複合 開発ノードで表されます。 複合開発ノードは、複合開発ノードが物理デバイスへの複数のパスを持つことができますが、ユーザーとアプリケーションに対する複合デバイスを論理的に 1 つのデバイスとして表します。

物理デバイスへの各アクティブなトランスポート パスはトランスポート 開発ノードで表され、複合デバイスの トランスポート関係 と呼ばれます。

複合開発ノード (ただし、関連するトランスポート開発ノードではない) は、デバイス インターフェイスをアプリケーションとシステムに公開します。 アプリケーションでこれらのパブリック デバイス インターフェイスを使用する場合、複合デバイスはパケット ベースのデータをこれらのトランスポート 開発ノードの 1 つ以上にルーティングし、その後、データを物理デバイスに転送します。

たとえば、物理携帯電話が USB 上のコンピューターとBluetooth バスに同時に接続されている場合、各バスはそのバス上の子トランスポート devnode を列挙して、デバイスの物理接続を表します。

この場合、ulFlags でCM_GETIDLIST_FILTER_TRANSPORTRELATIONS フラグを設定し、pszFilterで携帯電話の複合開発ノードのデバイス インスタンス ID 指定した場合、関数は Buffer パラメーターの 2 つのトランスポート 開発ノードのデバイス インスタンス ID を返します。

デバイス インスタンス ID の詳細については、「デバイス識別文字列の」を参照してください。

手記

cfgmgr32.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてCM_Get_Device_ID_Listを定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム の 万国
ヘッダー cfgmgr32.h (Cfgmgr32.h を含む)
ライブラリ Cfgmgr32.lib
DLL CfgMgr32.dll

関連項目

CM_Get_Device_ID_List_Size