次の方法で共有


IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2 IOCTL (sidebandaudio.h)

オーディオ ドライバーは 、サイド バンド オーディオ デバイス インターフェイスを介して公開されるオーディオ エンドポイントに関する情報を取得するために、IOCTL_SBAUD_GET_ENDPOINT_DESCRIPTOR2コントロール コードを発行します。 この IOCTL のバージョン 2 を使用すると、コントローラー ドライバーは、オーディオ デバイスのインターフェイスに追加するカスタム デバイス プロパティを提供できます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

IOCTL_SBAUD_GET_DEVICE_DESCRIPTORによって報告されるオーディオ エンドポイントの数に基づく 0 ベースのエンドポイント インデックス値。

これは 0 から (N-1) までの ULONG 値です。N はデバイスのエンドポイントの数です。

入力バッファーの長さ

ULONG のサイズ。

出力バッファー

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2構造体の後に、その構造体によって参照されるその他のデータを含むバッファー。 これは、出力バッファー サイズで十分で、要求が成功した場合に返されます。 特に、バッファーには、SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2構造体の FriendlyName フィールドによって参照される文字列のストレージが含まれます。

出力バッファーの長さ

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2構造体と参照されるデータのサイズ。

ステータス ブロック

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

メモ 出力バッファーには構造体によって参照される他のデータが含まれている可能性があるため、これは 、SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2 構造体のサイズよりも大きくなる可能性があります

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

注釈

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

オーディオ ドライバーは、有効なオーディオ サイドバンド エンドポイントに関する情報を取得するために、この要求を送信します。 インターフェイスが有効になっている間は情報は変更されませんが、インターフェイスが無効になっている間は変更できます。 そのため、オーディオ ドライバーは、有効なデバイス インターフェイスを検出した直後にこの要求を送信し、その情報を使用して適切なKSFILTER_DESCRIPTOR構造を構築します。

オーディオ ドライバーは、必要な出力バッファー サイズを決定するために、0 (0) の出力バッファー サイズでこの要求を 1 回送信します。 この場合、要求は Status STATUS_BUFFER_TOO_SMALLで完了し、 Information メンバーを必要なバッファー サイズに設定します。 その後、オーディオ ドライバーは必要な記憶域を割り当て、要求を再度送信します。

要件

要件
Header sidebandaudio.h

こちらもご覧ください

SIDEBANDAUDIO_ENDPOINT_DESCRIPTOR2

I/O 制御コードの概要

sidebandaudio.h