次の方法で共有


IWMDeviceManager3::SetDeviceEnumPreference メソッド (mswmdm.h)

SetDeviceEnumPreference メソッドは、デバイス列挙の基本設定を設定します。

構文

HRESULT SetDeviceEnumPreference(
  [in] DWORD dwEnumPref
);

パラメーター

[in] dwEnumPref

列挙設定を指定する次の 1 つ以上のビット値のビットごとの OR の組み合わせを指定します。 各セット ビットは対応する拡張動作を有効にしますが、そのビットがない場合は拡張動作が無効になり、既定の下位互換性のある列挙動作が指定されます。 fuPrefs に使用できる値を次の表に示します。

説明
DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES 既定では、複数のストレージ メディア (複数のフラッシュ メモリ カードなど) を含むデバイスの場合、これらの各ストレージは個別の擬似デバイスとして列挙されます。 ただし、このフラグを設定すると、記憶域はデバイスとして表示されず、デバイスとして表示されるのはデバイスのみです。 詳細については、「解説」を参照してください。
ALLOW_OUTOFBAND_NOTIFICATION このフラグが設定されている場合、サービス プロバイダーは、ウィンドウ メッセージを使用するなど、追加のメカニズム、およびアプリケーションで実装された IWMDMNotification インターフェイスを呼び出す既定のメカニズムによって、デバイスの到着と削除を送信できます。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
fuPrefs パラメーターは、サポートされていないビット値を指定します。
WMDM_E_CALL_OUT_OF_SEQUENCE
メソッドは列挙操作の後に呼び出されました。列挙操作の前に呼び出す必要があります。

注釈

このメソッドは、クライアントに Windows Media デバイス マネージャーの既定のデバイス列挙動作をオーバーライドする機能を提供します。 既定の動作をオーバーライドするには、クライアント アプリケーションは、Media デバイス マネージャー から IWMDMDeviceManager3 インターフェイスのクエリを実行して、デバイス マネージャー オブジェクトを作成した直後にこのメソッドを呼び出す必要があります。 別の操作の結果として明示的または暗黙的に列挙が行われる前に、呼び出しを行う必要があります。

基本設定フラグを設定した後は、アプリケーションの有効期間 (Windows Media デバイス マネージャー オブジェクトの有効期間だけでなく) を変更することはできません。 基本設定フラグを変更しようとすると、エラーが発生します。 同じフラグ設定でこのメソッドを再度呼び出してもエラーは返されず、列挙にも影響します。

サービス プロバイダーは、DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES フラグを受け入くことができない場合があります。 ストレージが同じデバイスによってホストされているかどうかを判断するより堅牢な方法は、 IWMDMDevice2::GetCanonicalName を呼び出す方法です。 同じデバイスのストレージは、最後の "$" 文字の後の最後の数字を除き、同じ値を返します。

要件

要件
対象プラットフォーム Windows
ヘッダー mswmdm.h

こちらもご覧ください

IWMDMDevice2::GetCanonicalName