次の方法で共有


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 オーディオ バス ドライバーは、一致するタグ値を持つ任意のコーデックからの要請されていない応答を検出すると、ルーチンは IRQL DISPATCH_LEVELで指定されたコールバック ルーチンを呼び出し、呼び出しパラメーターとしてルーチンに指定されたコンテキスト値を渡します。

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

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

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

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー hdaudio.h (Hdaudio.h を含む)
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

関連項目

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

UnregisterEventCallback  

hdaudio.h する