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_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 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 (「解説」セクションを参照) |