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 を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_POINTER
必要な引数の少なくとも 1 つが NULL ポインターでした。
S_FALSE
pPnPDeviceIDs バッファーが小さすぎて要求されたすべての値を保持できませんが、pcPnPDeviceIDs 値は pPnPDeviceIDs に書き込まれています。

注釈

デバイスの一覧は、デバイス マネージャーがインスタンス化されるときに生成されます。デバイスの接続と切断時に更新されません。 接続されているデバイスの一覧を更新するには、 RefreshDeviceList を呼び出します。

API は、 pPnPDeviceIDs 配列が指す各文字列にメモリを割り当てます。 アプリケーションでこれらの文字列が不要になったら、この配列を反復処理し、 CoTaskMemFree 関数を呼び出して関連するメモリを解放する必要があります。

このメソッドを使用してデバイスを列挙する方法の例については、「デバイス の列挙」を参照してください。 このメソッドを使用してサービスを列挙する方法の例については、「サービスの 列挙」を参照してください。

要件

要件
対象プラットフォーム Windows
ヘッダー portabledeviceapi.h
Library PortableDeviceGUIDs.lib

こちらもご覧ください

デバイスの列挙

サービスの列挙

IPortableDeviceManager インターフェイス