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_INTERFACE、HDAUDIO_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を返します。 それ以外の場合、ルーチンは適切なエラー コードを返します。 次の表に、可能な戻り状態コードを示します。
| リターン コード | 形容 |
|---|---|
|
操作を完了するのに十分なリソースが不足していることを示します。 |
備考
このルーチンは、コーデックからの要求されていない応答のコールバック ルーチンを登録します。 このルーチンは、要求されていない応答を識別するタグを出力します。 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 (「解説」セクションを参照) |
関連項目
UnregisterEventCallback の
hdaudio.h を する