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 |