IMiniportWavePci::NewStream 方法 (portcls.h)
方法 NewStream
會建立與指定實體通道相關聯的邏輯數據流的新實例。
語法
NTSTATUS NewStream(
[out] PMINIPORTWAVEPCISTREAM *Stream,
[in, optional] PUNKNOWN OuterUnknown,
[in] POOL_TYPE PoolType,
[in] PPORTWAVEPCISTREAM PortStream,
[in] ULONG Pin,
[in] BOOLEAN Capture,
[in] PKSDATAFORMAT DataFormat,
[out] PDMACHANNEL *DmaChannel,
[out] PSERVICEGROUP *ServiceGroup
);
參數
[out] Stream
新數據流的輸出指標。 此參數指向呼叫端配置的指標變數,方法會將指標寫入數據流物件的 IMiniportWavePciStream 介面。 呼叫端會指定此參數的有效非 NULL 指標。
[in, optional] OuterUnknown
需要匯總數據流物件之物件的 IUnknown 介面指標。 這是選擇性參數。 如果不需要匯總,呼叫端會將此參數指定為 NULL。
[in] PoolType
指定應該配置 DMA 通道物件的記憶體的來源記憶體類型。 此參數將是 POOL_TYPE 列舉中定義的非分頁集區類型之一。
[in] PortStream
埠驅動程序數據流物件的 IPortWavePciStream 介面指標。
[in] Pin
指定識別要開啟之針腳的針腳標識碼。 如果 WavePci 迷你埠驅動程式的篩選描述元在篩選上指定 n 個針 腳處理站總數,則參數 Pin 的有效值會位於範圍 0 到 n-1。
[in] Capture
指定是否要建立擷取數據流或轉譯數據流。 這個 參數適用於擷 取 (輸入) 通道,而播放 (輸出) 通道則為 FALSE 。
[in] DataFormat
指定數據流數據格式的 KSDATAFORMAT 結構的指標。
[out] DmaChannel
DMA 通道的輸出指標。 此參數指向呼叫端配置的指標變數,方法會將指標寫入數據流的 IDmaChannel 物件。 呼叫端會指定此參數的有效非 NULL 指標。
[out] ServiceGroup
服務群組的輸出指標。 此參數指向呼叫端配置的指標變數,方法會將指標寫入數據流服務群組物件的 IServiceGroup 介面。 這是正在註冊中斷通知的服務群組。 呼叫端會指定此參數的有效非 NULL 指標。
傳回值
NewStream
如果呼叫成功,則會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。
備註
方法 NewStream
會將數據流的初始狀態設定為 KSSTATE_STOP,並將其初始位置設定為零。 (請參閱 IMiniportWavePciStream::SetState 和 IMiniportWavePciStream::GetPosition.)
DataFormat 參數會指定數據流的數據格式,指向下列其中一個特定音訊擴充版本的 KSDATAFORMAT 結構:
如果迷你埠驅動程式未提供服務群組指標 (也就是說,如果NewStream
呼叫會透過 ServiceGroup 指標輸出 NULL) ,埠驅動程式會改為設定自己的定期定時器來處理數據流位置和時鐘事件。 此定時器的期間目前為 20 毫秒,但期間可能會在未來的實作中變更。
Stream、OuterUnknown、PortStream 和 ServiceGroup 參數會遵循 COM 物件的參考計數慣例。
請注意, NewStream
不會遵循其透過 DmaChannel OUT 參數輸出之指標的一般參考計數慣例。 當埠驅動程式完成使用透過 NewStream
方法的其他 OUT 參數所接收的參考時,Stream 和 ServiceGroup,它會如預期般釋放這些參考。 相反地,埠驅動程序永遠不會使用從NewStream
呼叫收到的 DmaChannel 指標,而且永遠不會在 DmaChannel 物件上呼叫 Release。
Microsoft Windows 驅動程式套件中的 ac97 範例音訊驅動程式 (WDK) 反映此行為。 這個範例的 方法實作IMiniportWavePci::NewStream
會在 Stream 和 ServiceGroup 參考上呼叫 AddRef,而它所輸出但不是 DmaChannel 參考。 為了回溯相容性,會保留此行為。
請注意, NewStream
其他埠類型的方法 (WaveCyclic,特別是) 遵循其所有 OUT 參數的一般參考計數慣例。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |