EVT_ACX_STREAM_PAUSE コールバック関数 (acxstreams.h)
EvtAcxStreamPause イベントは、ストリームの状態を Run から Pause に切り替えることをドライバーに指示します。
構文
EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;
NTSTATUS EvtAcxStreamPause(
ACXSTREAM Stream
)
{...}
パラメーター
Stream
ACXSTREAM オブジェクトは、回線によって作成されたオーディオ ストリームを表します。 ストリームは、親回線の要素に基づいて作成された要素の一覧で構成されます。 詳細については、ACX - ACX オブジェクトの概要を参照してください。
戻り値
呼び出しが成功した場合に STATUS_SUCCESS
を返します。 それ以外の場合は、適切なエラー コードが返されます。 詳細については、NTSTATUS 値 の使用に関するを参照してください。
備考
AcxStream では、さまざまな状態がサポートされています。 これらの状態は、オーディオが流れている (RUN 状態)、オーディオがフローしていないが、オーディオ ハードウェアが準備されている (PAUSE 状態)、またはオーディオが流れず、オーディオ ハードウェアが準備されていない (STOP 状態) 場合を示します。
EvtAcxStreamPause イベントは、ストリームの状態を実行状態から一時停止状態に遷移します。 ストリームが一時停止状態になると、ドライバーは、EvtAcxStreamRun イベントを受け取って実行状態に遷移するか、ドライバーが停止状態に遷移する EvtAcxStreamReleaseHardware イベントを受け取ることがあります。
ACX デバイスの電源ダウンと削除中にストリームが存在する場合、ACX は EvtAcxStreamPause を呼び出してストリームを一時停止に切り替えます。 これは、スコープが設定された Stream インスタンスです。
ACX イベントは、次の表に示すように KS 状態に似ています。
開始状態 | 終了状態 | 呼び出された ACX ドライバー イベント | 筆記 |
---|---|---|---|
止める | 取得する | PrepareHardware | ドライバーがハードウェアの割り当てと準備を実行する |
取得する | 休止 | (通話なし) | |
休止 | 走る | 走る | |
走る | 休止 | 休止 | |
休止 | 取得する | (通話なし) | |
取得する | 止める | ReleaseHardware | ドライバーがハードウェア割り当てを解放する |
例
使用例を次に示します。
ACX_STREAM_CALLBACKS streamCallbacks;
ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
streamCallbacks.EvtAcxStreamPause = EvtStreamPause;
...
status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
#pragma code_seg("PAGE")
NTSTATUS
EvtStreamPause(
_In_ ACXSTREAM Stream
)
{
PSTREAM_CONTEXT ctx;
NTSTATUS status = STATUS_SUCCESS;
PAGED_CODE();
ctx = GetStreamContext(Stream);
status = TransitionStreamToPause(Stream);
ctx->StreamState = AcxStreamStatePause;
return status;
}
ACX の要件
最小 ACX バージョン: 1.0
ACX バージョンの詳細については、ACX バージョンの概要 参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | acxstreams.h |
IRQL | PASSIVE_LEVEL |
関連項目
- acxstreams.h ヘッダー を する
- EVT_ACX_STREAM_PREPARE_HARDWARE
- EVT_ACX_STREAM_RUN_HARDWARE
- EVT_ACX_STREAM_RELEASE_HARDWARE