IPortableDeviceManager::GetPrivateDevices メソッド (portabledeviceapi.h)

GetPrivateDevices メソッドは、コンピューターに接続されているプライベート ポータブル デバイスの一覧を取得します。 これらのプライベート デバイスには、これらの特定のデバイス用に設計されたアプリケーションを介してのみアクセスできます。

構文

HRESULT GetPrivateDevices(
  [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 ポータブル デバイス関数呼び出しに正しく応答しない場合があります。

要件

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

こちらもご覧ください

IPortableDeviceManager インターフェイス