次の方法で共有


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

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

構文

HRESULT SetDeviceEnumPreference(
  [in] DWORD dwEnumPref
);

パラメーター

[in] dwEnumPref

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

説明
DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES 既定では、複数のストレージ メディアを含むデバイスの場合、これらの各ストレージは個別の擬似デバイスとして列挙されます。 ただし、このビットが設定されている場合、ストレージはデバイスとして表示されず、デバイスとして表示されるのはデバイスのみです。
ALLOW_OUTOFBAND_NOTIFICATION 既定では、 IWMDMNotification コールバック メカニズムは、デバイスの到着イベントと削除イベントをアプリケーションに提供します。 このビットが設定されている場合、サービス プロバイダーは、ウィンドウ メッセージを使用するなど、別のメカニズムによってアプリケーションに自由に通知できます。 この動作は、Windows Media デバイス マネージャー通知に加えて行われます。 このフラグは、Windows Media デバイス マネージャー通知を抑制しません。

戻り値

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

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

注釈

この API は、Windows Media デバイス マネージャーの既定のデバイス列挙動作をオーバーライドする機能をクライアントに提供します。

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

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

DO_NOT_VIRTUALIZE_STORAGES_AS_DEVICES フラグを有効にするには、サービス プロバイダーが受け入れる必要があります。 このフラグにもかかわらず、一部のデバイスがデバイスごとのストレージとして列挙される可能性があります。

要件

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

こちらもご覧ください

IMDServiceProvider3 インターフェイス