共用方式為


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

指定建立擷取數據流或轉譯數據流。 這個參數是擷取 (輸入) 通道的 TRUE ,而播放 (輸出) 通道 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 呼叫輸出 NULL 透過 ServiceGroup 指標),埠驅動程式會改為設定自己的定期定時器來處理數據流位置和時鐘事件。 此定時器的期間目前為 20 毫秒,但未來實作中的期間可能會變更。

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

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

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

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

要求

要求 價值
目標平臺 普遍
標頭 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另請參閱

IDmaChannel

IMiniportWavePci

IMiniportWavePciStream

IPortWavePciStream

IServiceGroup

KSDATAFORMAT

KSDATAFORMAT_DSOUND

KSDATAFORMAT_WAVEFORMATEX

POOL_TYPE