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 狀態) ,或音訊未流動且音頻硬體未 (STOP 狀態) 備妥。
EvtAcxStreamPause 事件會將數據流狀態從 [執行] 狀態轉換為 [暫停] 狀態。 一旦數據流處於Pause狀態,驅動程式可能會收到 EvtAcxStreamRun 事件以轉換至 [執行] 狀態,或者驅動程式可能會收到 EvtAcxStreamReleaseHardware 事件,以轉換為 Stop 狀態。
在 ACX 裝置關閉電源和移除期間,如果串流存在,ACX 會呼叫 EvtAcxStreamPause 將串流轉換為 Pause。 這是 Stream 實例範圍。
ACX 事件類似於 KS 狀態,如下表所述。
開始狀態 | 結束狀態 | 呼叫 ACX 驅動程式事件 | 備註 |
---|---|---|---|
STOP | 獲得 | PrepareHardware | 驅動程式會執行硬體配置和準備 |
獲得 | PAUSE | (沒有通話) | |
PAUSE | RUN | 執行 | |
RUN | 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 版本概觀。
規格需求
需求 | 值 |
---|---|
標頭 | acxstreams.h |
IRQL | PASSIVE_LEVEL |