Share via


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

こちらもご覧ください