DEVICE_STATE_XXX定数

DEVICE_STATE_XXX定数は、オーディオ エンドポイント デバイスの現在の状態を示します。

定数/値 説明
DEVICE_STATE_ACTIVE
0x00000001
オーディオ エンドポイント デバイスがアクティブです。 つまり、エンドポイント デバイスに接続するオーディオ アダプターが存在し、有効になっています。 さらに、エンドポイント デバイスがアダプターのジャックに接続されている場合は、エンドポイント デバイスが接続されます。
DEVICE_STATE_DISABLED
0x00000002
オーディオ エンドポイント デバイスが無効になっています。 ユーザーが Windows マルチメディア コントロール パネルのデバイスを無効にMmsys.cpl。 詳細については、「解説」を参照してください。
DEVICE_STATE_NOTPRESENT
0x00000004
エンドポイント デバイスに接続するオーディオ アダプターがシステムから削除されたか、ユーザーがデバイス マネージャーでアダプター デバイスを無効にしたため、オーディオ エンドポイント デバイスが存在しません。
DEVICE_STATE_UNPLUGGED
0x00000008
オーディオ エンドポイント デバイスが取り外されています。 エンドポイント デバイスのジャックを含むオーディオ アダプターが存在し、有効になっていますが、エンドポイント デバイスがジャックに接続されていません。 この状態にできるのは、ジャックプレゼンス検出を備えたデバイスのみです。 ジャックプレゼンス検出の詳細については、「 オーディオ エンドポイント デバイス」を参照してください。
DEVICE_STATEMASK_ALL
0x0000000F
アクティブ、無効、存在しない、および取り外されたすべての状態のオーディオ エンドポイント デバイスが含まれます。

解説

IMMDeviceEnumerator::EnumAudioEndpointsIMMDevice::GetState、および IMMNotificationClient::OnDeviceStateChanged メソッドは、DEVICE_STATE_XXX定数を使用します。 これらのメソッドを使用すると、クライアントは、DEVICE_STATE_XXX定数によって表されるいずれかの状態にあるエンドポイント デバイスに関する情報を取得できます。

ただし、クライアントは、DEVICE_STATE_ACTIVE状態のデバイスでのみストリームを開くことができます (たとえば、デバイスの IAudioClient インターフェイスを取得します)。

Windows マルチメディア コントロール パネルMmsys.cpl、システム内のオーディオ エンドポイント デバイスが表示されます。 Mmsys.cplでデバイスを無効にすると、上位レベルのオーディオ API のデバイス検出メカニズムからデバイスが非表示になりますが、デバイスが無効になる前にクライアントがインスタンス化したストリーム オブジェクトは無効になりません。 たとえば、ユーザーがMmsys.cplで無効にしたときにストリームがデバイスで再生されている場合、ストリームは中断されずに再生され続けます。

これに対し、デバイス マネージャーでデバイスを無効にすると、システムからデバイスが効果的に削除されます。

Mmsys.cplを使用してレンダリング デバイスを表示するには、コマンド プロンプト ウィンドウを開き、次のコマンドを入力します。

control mmsys.cpl,,0

キャプチャ デバイスを表示するには、次のコマンドを入力します。

control mmsys.cpl,,1

または、タスク バーの右側にある通知領域のスピーカー アイコンを右クリックし、[再生デバイス] または [記録デバイス] を選択して、レンダリング デバイス またはキャプチャ デバイスをMmsys.cplで表示することもできます。

Mmsys.cplは常に、DEVICE_STATE_ACTIVE状態のエンドポイント デバイスを表示します。 さらに、無効なデバイスと切断されたデバイスを表示するように構成することもできます。

DEVICE_STATE_DISABLEDおよびDEVICE_STATE_NOTPRESENT状態にあるエンドポイント デバイスを表示するには、Mmsys.cpl ウィンドウを右クリックし、[ 無効なデバイスの表示 ] オプションを選択します。

DEVICE_STATE_UNPLUGGED状態のエンドポイント デバイスを表示するには、[Mmsys.cpl] ウィンドウを右クリックし、[ 切断されたデバイスの表示 ] オプションを選択します。

DEVICE_STATE_ACTIVE状態のエンドポイント デバイスのみを表示するには、[ 無効なデバイスの表示 ] オプションと [ 切断されたデバイスの表示 ] オプションの両方の選択を解除します。

Mmsys.cplでエンドポイント デバイスを有効または無効にするには、デバイスが 再生 デバイスか 記録デバイスかに応じて、[再生] または [記録] をクリックします。 次に、デバイスを選択し、[ プロパティ] をクリックします。 [ プロパティ ] ウィンドウの [ デバイスの使用状況] の横にある [ このデバイスを使用する (有効にする)] または [ このデバイスを使用しない (無効にする)] を選択します。

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
ヘッダー
Mmdeviceapi.h

関連項目

コア オーディオ定数

IMMDevice::GetState

IMMDeviceEnumerator インターフェイス

IMMDeviceEnumerator::EnumAudioEndpoints

IMMNotificationClient::OnDeviceStateChanged