共用方式為


EVT_ACX_STREAM_PAUSE回呼函式 (acxstreams.h)

EvtAcxStreamPause 事件會告知驅動程式將串流狀態從 [執行] 轉換為 [暫停]。

語法

EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;

NTSTATUS EvtAcxStreamPause(
  ACXSTREAM Stream
)
{...}

參數

Stream

ACXSTREAM 物件代表線路所建立的音訊數據流。 數據流是由根據父線路元素所建立的專案清單所組成。 如需詳細資訊,請參閱 ACX - ACX 物件的摘要

傳回值

如果呼叫成功,則傳回 STATUS_SUCCESS。 否則,它會傳回適當的錯誤碼。 如需詳細資訊,請參閱使用NTSTATUS值

言論

AcxStream 支援不同的狀態。 這些狀態表示音訊正在流動(RUN 狀態)、音訊未流動,但音訊硬體已備妥(PAUSE 狀態),或音訊未流動,且音訊硬體未備妥(停止狀態)。

EvtAcxStreamPause 事件會將數據流狀態從 [執行] 狀態轉換為 [暫停] 狀態。 數據流處於暫停狀態后,驅動程式可能會收到 EvtAcxStreamRun 事件以轉換至執行狀態,或驅動程式可能會收到 EvtAcxStreamReleaseHardware 事件以轉換至停止狀態。

在ACX裝置關閉電源和移除期間,如果串流存在,ACX 會呼叫EvtAcxStreamPause將串流轉換為暫停。 這是串流實例的範圍。

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

另請參閱