次の方法で共有


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

こちらもご覧ください