次の方法で共有


IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR IOCTL (sidebandaudio.h)

オーディオ ドライバーは、有効なサイドバンド オーディオ デバイス インターフェイスに関する情報を取得する IOCTL_SBAUD_GET_DEVICE_DESCRIPTOR を発行します。 具体的には、これは Sideband をサポートするデバイスで使用できるオーディオ エンドポイントの数を返します。 この情報は、 オーディオ デバイス記述子 構造体で返されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

NULL。

入力バッファーの長さ

出力バッファー

SIDEBANDAUDIO_DEVICE_DESCRIPTOR構造体を含むバッファー。

出力バッファーの長さ

SIDEBANDAUDIO_DEVICE_DESCRIPTOR構造体のサイズ。

ステータス ブロック

ルーチンが成功した場合、Status はSTATUS_SUCCESSに設定され、 Information メンバーはルーチンが出力バッファーに書き込むバイト数です。

Status が STATUS_BUFFER_TOO_SMALL に設定されている場合、オーディオ ドライバーは Information メンバーを読み取って、呼び出し元がこの要求に割り当てるバッファーのサイズを取得する必要があります。

注釈

この IOCTL はカーネル モードからのみ呼び出すことができます。

オーディオ ドライバーは、有効なオーディオ サイドバンド デバイス インターフェイスに関する情報を取得するには、この要求を送信します。 インターフェイスが有効になっている間は情報は変更されませんが、インターフェイスが無効になっている間は変更される可能性があります。 オーディオ ドライバーは、有効なサイドバンド オーディオ デバイス インターフェイスを検出した直後にこの要求を送信し、情報を使用して、使用可能なサイドバンド オーディオ エンドポイントの数を決定します。

オーディオ ドライバーは、必要な出力バッファー サイズを決定するために、0 の出力バッファー サイズでこの要求を 1 回送信します。 この場合、要求は Status STATUS_BUFFER_TOO_SMALLで完了し、 Information メンバーを必要なバッファー サイズに設定します。 その後、オーディオ ドライバーは必要な記憶域を割り当てて、要求を再度送信します。 通常、オーディオ ドライバーは、後のアクティビティ中に参照できるように、デバイス コンテキストにこのストレージの場所へのポインターを格納します。

その後、オーディオ ドライバーは、IOCTL IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTORを使用して各エンドポイントの機能を反復的に決定できます。

要件

要件
Header sidebandaudio.h

こちらもご覧ください

sidebandaudio.h

I/O 制御コードの概要