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 イベントは、ストリームの状態を Run 状態から Pause 状態に切り替えます。 ストリームが一時停止状態になると、ドライバーは EvtAcxStreamRun イベントを受け取って実行状態に切り替えるか、 ドライバーが EvtAcxStreamReleaseHardware イベントを受け取って停止状態に切り替える場合があります。
ACX デバイスの電源ダウンと削除中に、ストリームが存在する場合、ACX は EvtAcxStreamPause を呼び出してストリームを一時停止に移行します。 これは、インスタンススコープStreamです。
ACX イベントは、次の表で説明するように KS 状態に似ています。
開始状態 | 終了状態 | 呼び出された ACX ドライバー イベント | メモ |
---|---|---|---|
STOP | 取得 | PrepareHardware | ドライバーは、ハードウェアの割り当てと準備を実行します。 |
取得 | PAUSE | (通話なし) | |
PAUSE | 実行 | 実行 | |
実行 | PAUSE | 一時停止 | |
PAUSE | 取得 | (通話なし) | |
取得 | STOP | 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 バージョンの概要」を参照してください。
要件
要件 | 値 |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |