IPortableDeviceManager::GetDevices メソッド (portabledeviceapi.h)
コンピューターに接続されているポータブル デバイスの一覧を取得します。
構文
HRESULT GetDevices(
[in, out] LPWSTR *pPnPDeviceIDs,
[in, out] DWORD *pcPnPDeviceIDs
);
パラメーター
[in, out] pPnPDeviceIDs
接続されているすべてのデバイスのプラグ アンド プレイ名を保持する文字列ポインターの呼び出し元によって割り当てられた配列。 このパラメーターに必要なサイズを確認するには、まず、このパラメーターを NULL に設定し、 pcPnPDeviceIDs を 0 に設定してこのメソッドを呼び出し、 pcPnPDeviceIDs によって取得された値に従ってバッファーを割り当てます。 これらの名前は、 IPortableDevice::Open で使用して、デバイスへの接続を作成できます。
[in, out] pcPnPDeviceIDs
入力時に、 pPnPDeviceID が 保持できる値の数。 出力時に、 pPnPDeviceIDs に実際に書き込まれたデバイスの数へのポインター。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
必要な引数の少なくとも 1 つが NULL ポインターでした。 |
|
pPnPDeviceIDs バッファーが小さすぎて要求されたすべての値を保持できませんが、pcPnPDeviceIDs 値は pPnPDeviceIDs に書き込まれています。 |
注釈
デバイスの一覧は、デバイス マネージャーがインスタンス化されるときに生成されます。デバイスの接続と切断時に更新されません。 接続されているデバイスの一覧を更新するには、 RefreshDeviceList を呼び出します。
API は、 pPnPDeviceIDs 配列が指す各文字列にメモリを割り当てます。 アプリケーションでこれらの文字列が不要になったら、この配列を反復処理し、 CoTaskMemFree 関数を呼び出して関連するメモリを解放する必要があります。
例
このメソッドを使用してデバイスを列挙する方法の例については、「デバイス の列挙」を参照してください。 このメソッドを使用してサービスを列挙する方法の例については、「サービスの 列挙」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | portabledeviceapi.h |
Library | PortableDeviceGUIDs.lib |