CM_Get_Device_ID_ListW関数 (cfgmgr32.h)
構文
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を
[out] Buffer
NULL で終了するデバイス インスタンス識別子文字列のセットを受信するバッファーのアドレス。 セットの末尾は、追加の NULLによって終了されます。 必要なバッファー サイズは、CM_Get_Device_ID_List_Sizeを呼び出すことによって取得する必要があります。
[in] BufferLen
Bufferで指定されたバッファーの呼び出し元が指定した長さ (文字数)。
[in] ulFlags
検索フィルターを指定する、呼び出し元が指定した次のいずれかのビット フラグ。
CM_GETIDLIST_FILTER_BUSRELATIONS
このフラグが設定されている場合、pszFilter
CM_GETIDLIST_FILTER_CLASS (Windows 7 以降のバージョンの Windows)
このフラグが設定されている場合、pszFilter
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 のデバイス インスタンス識別子を返します。
複合開発ノードとトランスポート関係の詳細については、次の 解説 セクションを参照してください。
CM_GETIDLIST_DONOTGENERATE
CM_GETIDLIST_FILTER_SERVICEでのみ使用されます。 設定されている場合、およびデバイス ツリーに指定されたサービスの devnode が含まれていない場合、このフラグは、関数がサービスの開発ノードを作成できないようにします。
CM_GETIDLIST_FILTER_EJECTRELATIONS
このフラグが設定されている場合、pszFilter
CM_GETIDLIST_FILTER_ENUMERATOR
このフラグが設定されている場合、pszFilter
pszFilter
pszFilter
CM_GETIDLIST_FILTER_NONE
このフラグが設定されている場合、pszFilter
CM_GETIDLIST_FILTER_POWERRELATIONS
このフラグが設定されている場合、pszFilter
CM_GETIDLIST_FILTER_REMOVALRELATIONS
このフラグが設定されている場合、pszFilter
CM_GETIDLIST_FILTER_SERVICE
このフラグが設定されている場合、pszFilter
デバイス ツリーに指定されたサービスの devnode が含まれていない場合、この関数は既定で作成されることに注意してください。 この動作を抑制するには、CM_GETIDLIST_DONOTGENERATEも設定します。
検索フィルター フラグが指定されていない場合、関数はすべてのデバイス インスタンスのすべてのデバイス インスタンス ID を返します。
戻り値
操作が成功した場合、関数はCR_SUCCESSを返します。 それ以外の場合は、Cfgmgr32.hで定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。
備考
Windows 7 以降、パケット ベースのデータの複数のトランスポート パスをサポートするデバイスは、複合 デバイスと呼ばれ、複合 開発ノードで表されます。 複合開発ノードは、複合開発ノードが物理デバイスへの複数のパスを持つことができますが、ユーザーとアプリケーションに対する複合デバイスを論理的に 1 つのデバイスとして表します。
物理デバイスへの各アクティブなトランスポート パスはトランスポート 開発ノードで表され、複合デバイスの トランスポート関係 と呼ばれます。
複合開発ノード (ただし、関連するトランスポート開発ノードではない) は、デバイス インターフェイスをアプリケーションとシステムに公開します。 アプリケーションでこれらのパブリック デバイス インターフェイスを使用する場合、複合デバイスはパケット ベースのデータをこれらのトランスポート 開発ノードの 1 つ以上にルーティングし、その後、データを物理デバイスに転送します。
たとえば、物理携帯電話が USB 上のコンピューターとBluetooth バスに同時に接続されている場合、各バスはそのバス上の子トランスポート devnode を列挙して、デバイスの物理接続を表します。
この場合、
デバイス インスタンス ID の詳細については、「デバイス識別文字列の」を参照してください。
手記
cfgmgr32.h ヘッダーは、unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとしてCM_Get_Device_ID_Listを定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | cfgmgr32.h (Cfgmgr32.h を含む) |
ライブラリ | Cfgmgr32.lib |
DLL | CfgMgr32.dll |