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::SetStateIMiniportWavePciStream::GetPosition.)

DataFormat 參數會指定數據流的數據格式,指向下列其中一個特定音訊擴充版本的 KSDATAFORMAT 結構:

KSDATAFORMAT_WAVEFORMATEX

KSDATAFORMAT_DSOUND

如果迷你埠驅動程式未提供服務群組指標 (也就是說,如果NewStream呼叫會透過 ServiceGroup 指標輸出 NULL) ,埠驅動程式會改為設定自己的定期定時器來處理數據流位置和時鐘事件。 此定時器的期間目前為 20 毫秒,但期間可能會在未來的實作中變更。

StreamOuterUnknownPortStreamServiceGroup 參數會遵循 COM 物件的參考計數慣例

請注意, NewStream 不會遵循其透過 DmaChannel OUT 參數輸出之指標的一般參考計數慣例。 當埠驅動程式完成使用透過 NewStream 方法的其他 OUT 參數所接收的參考時,StreamServiceGroup,它會如預期般釋放這些參考。 相反地,埠驅動程序永遠不會使用從NewStream呼叫收到的 DmaChannel 指標,而且永遠不會在 DmaChannel 物件上呼叫 Release

Microsoft Windows 驅動程式套件中的 ac97 範例音訊驅動程式 (WDK) 反映此行為。 這個範例的 方法實作IMiniportWavePci::NewStream會在 StreamServiceGroup 參考上呼叫 AddRef,而它所輸出但不是 DmaChannel 參考。 為了回溯相容性,會保留此行為。

請注意, NewStream 其他埠類型的方法 (WaveCyclic,特別是) 遵循其所有 OUT 參數的一般參考計數慣例。

規格需求

需求
目標平台 Universal
標頭 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另請參閱

IDmaChannel

IMiniportWavePci

IMiniportWavePciStream

IPortWavePciStream

IServiceGroup

KSDATAFORMAT

KSDATAFORMAT_DSOUND

KSDATAFORMAT_WAVEFORMATEX

POOL_TYPE