EVT_ACX_STREAM_RUN コールバック関数 (acxstreams.h)
EvtAcxStreamRun イベントは、ストリームの状態を一時停止から実行に移行するようにドライバーに指示します。
構文
EVT_ACX_STREAM_RUN EvtAcxStreamRun;
NTSTATUS EvtAcxStreamRun(
ACXSTREAM Stream
)
{...}
パラメーター
Stream
ACXSTREAM オブジェクトは、回線によって作成されたオーディオ ストリームを表します。 ストリームは、親回線の要素に基づいて作成された要素の一覧で構成されます。 詳細については、「 ACX - ACX オブジェクトの概要」を参照してください。
戻り値
STATUS_SUCCESS
呼び出しが成功した場合は を返します。 それ以外の場合は、適切なエラー コードを返します。 詳細については、「 NTSTATUS 値の使用」を参照してください。
注釈
AcxStream では、さまざまな状態がサポートされています。 これらの状態は、オーディオが流れている (RUN 状態)、オーディオがフローしていないが、オーディオ ハードウェアが準備されている (PAUSE 状態)、またはオーディオが流れず、オーディオ ハードウェアが準備されていない (STOP 状態) 場合を示します。
EvtAcxStreamRun イベントは、ストリームの状態を Pause 状態から Run 状態に切り替えます。 ストリームが実行状態になると、ドライバーは EvtAcxStreamPause イベントを受け取り、Pause 状態に移行できます。
ACX イベントは、次の表で説明するように KS 状態に似ています。
開始状態 | 終了状態 | 呼び出された ACX ドライバー イベント | メモ |
---|---|---|---|
STOP | 取得 | PrepareHardware | ドライバーは、ハードウェアの割り当てと準備を実行します。 |
取得 | PAUSE | (通話なし) | |
PAUSE | 実行 | 実行 | |
実行 | PAUSE | 一時停止 | |
PAUSE | 取得 | (通話なし) | |
取得 | STOP | ReleaseHardware | ドライバーがハードウェア割り当てを解放する |
例
使用例を次に示します。
ACX_STREAM_CALLBACKS streamCallbacks;
ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
streamCallbacks.EvtAcxStreamRun = EvtStreamRun;
...
status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
_Use_decl_annotations_
PAGED_CODE_SEG
NTSTATUS
EvtStreamRun(
_In_ ACXSTREAM Stream
)
{
PSTREAM_CONTEXT ctx;
NTSTATUS status;
PAGED_CODE();
ctx = GetStreamContext(Stream);
status = TransitionStreamToRun(Stream);
if (NT_SUCCESS(status))
{
ctx->StreamState = AcxStreamStateRun;
}
return status;
}
ACX の要件
最小 ACX バージョン: 1.0
ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。
要件
要件 | 値 |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |