次の方法で共有


PREGISTER_EVENT_CALLBACK コールバック関数 (hdaudio.h)

RegisterEventCallback ルーチンは、コーデックまたはコーデックからの未承諾応答のコールバック ルーチンを登録します。

RegisterEventCallback ルーチンの関数ポインター型は、次のように定義されます。

構文

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

パラメーター

[in] _context

HDAUDIO_BUS_INTERFACEHDAUDIO_BUS_INTERFACE_V2、または HDAUDIO_BUS_INTERFACE_BDL 構造体の Context メンバーからコンテキスト値指定します。

[in] Routine

コールバック ルーチンへの関数ポインター。 このパラメーターは、PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK型の有効な NULL 以外の関数ポインターである必要があります。 詳細については、「解説」を参照してください。

[in] Context

コールバック ルーチンのコンテキスト値を指定します。 呼び出し元は、コンテキスト値を PVOID 型にキャストします。 指定したタグを含む要求されていない応答がコーデックによって生成されると、HD Audio バス ドライバーはコンテキスト値を呼び出しパラメーターとしてコールバック ルーチンに渡します。

[out] Tag

未承諾の応答を識別するタグ値を取得します。 このパラメーターは、ルーチンがタグ値を書き込む呼び出し元によって割り当てられた UCHAR 変数を指します。 呼び出し元は、コーデックまたはコーデックをプログラミングして未承諾の応答を生成するときに、このタグ値を指定する必要があります。 詳細については、「解説」を参照してください。

戻り値

RegisterEventCallback は、 呼び出しがイベントの登録に成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、ルーチンは適切なエラー コードを返します。 次の表は、可能な戻り状態コードを示しています。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
操作を完了するのに十分なリソースが不足していることを示します。

注釈

このルーチンは、コーデックからの未承諾応答のコールバック ルーチンを登録します。 ルーチンは、要求されていない応答を識別するタグを出力します。 HD Audio バス ドライバーが、タグ値が一致するコーデックからの未承諾応答を検出すると、ルーチンは IRQL DISPATCH_LEVELで指定されたコールバック ルーチンを呼び出し、指定したコンテキスト値を呼び出しパラメーターとしてルーチンに渡します。

RegisterEventCallback の呼び出しの後、関数ドライバーはコーデックまたはコーデックをプログラミングして、指定されたタグを使用して要求されていない応答を生成します。

ルーチンは、登録されている各コールバック ルーチンに一意のタグを割り当てます。 タグとコールバック ルーチンの一意の関連付けは、コールバック ルーチンが登録されている限り保持されます。 関数ドライバーは、 UnregisterEventCallback を呼び出すことによってコールバック ルーチンの登録を削除できます。

現在、バス ドライバーはコーデックごとに最大 64 個の一意のタグを提供できます。

コールバック パラメーターは、関数ドライバーのコールバック ルーチンへの関数ポインターです。 コールバック ルーチンの関数ポインター型は、次のように定義されます。

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

最初の呼び出しパラメーターは、コマンドに対するコーデックの応答を指定する HDAUDIO_CODEC_RESPONSE 型の構造体です。 この構造体は値渡しされます。 2 番目の呼び出しパラメーターは、RegisterEventCallback に以前に渡された callbackContext 値です。 HD Audio バス ドライバーは、IRQL DISPATCH_LEVELでコールバック ルーチンを呼び出します。

要件

要件
対象プラットフォーム デスクトップ
Header hdaudio.h (Hdaudio.h を含む)
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

こちらもご覧ください

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

UnregisterEventCallback  

hdaudio.h