共用方式為


IMiniportDMus::NewStream 方法 (dmusicks.h)

NewStream 方法會建立與指定實體通道相關聯的邏輯數據流的新實例。

語法

NTSTATUS NewStream(
  [out]          PMXF             *MXF,
  [in, optional] PUNKNOWN         OuterUnknown,
  [in]           POOL_TYPE        PoolType,
  [in]           ULONG            PinID,
  [in]           DMUS_STREAM_TYPE StreamType,
  [in]           PKSDATAFORMAT    DataFormat,
  [out]          PSERVICEGROUP    *ServiceGroup,
  [in]           PAllocatorMXF    AllocatorMXF,
  [in]           PMASTERCLOCK     MasterClock,
  [out]          PULONGLONG       SchedulePreFetch
);

參數

[out] MXF

新數據流的輸出指標。 此參數指向呼叫端配置的指標變數,方法會將指標寫入數據流物件的 IMXF 介面。

[in, optional] OuterUnknown

需要匯總數據流物件的 IUnknown 介面指標。 這個參數是選擇性的。 如果不需要匯總,呼叫端會將此參數指定為 null

[in] PoolType

指定應該從中配置 DMA 通道物件的記憶體的記憶體的記憶體集區類型。 此參數會設定為其中一個 POOL_TYPE 列舉值。

[in] PinID

指定釘選標識碼。 此參數會識別要開啟的針腳。 如果 DMus 迷你埠驅動程式的 IMiniport::GetDescription 方法會輸出篩選描述項,指定篩選上總共 n 個 pin Factory,則有效的針腳標識符範圍介於 0 到 n-1 的範圍內。

[in] StreamType

指定要建立的數據流類型。 此參數設定為下列其中一個DMUS_STREAM_TYPE列舉值:

DMUS_STREAM_MIDI_RENDER

指定 MIDI 輸出 (播放) 資料流。

DMUS_STREAM_MIDI_CAPTURE

指定MIDI輸入數據流。

DMUS_STREAM_WAVE_SINK

指定波浪輸出數據流。

如需詳細資訊,請參閱下列一節。

[in] DataFormat

核心串流 KSDATAFORMAT 結構的指標,指定要用於這個實例的數據格式

[out] ServiceGroup

服務群組的輸出指標。 此參數指向呼叫端配置的指標變數,方法會將指標寫入數據流服務群組物件的 IServiceGroup 介面。 這是正在註冊以接收中斷通知的服務群組。

[in] AllocatorMXF

IAllocatorMXF 物件的指標。 這是埠驅動程式的記憶體配置器,這是回收 DMUS_KERNEL_EVENT 結構所需的。

[in] MasterClock

IMasterClock 物件的指標。 此主要時鐘會將 KS 時鐘的包裝函式傳遞至迷你埠驅動程式。 需要主時鐘指標才能同步至參考時間。

[out] SchedulePreFetch

排程預先擷取時間的輸出指標。 這個參數是呼叫端配置的 ULONGLONG 變數指標,方法會寫入時間值,指定查詢事件的前進時間範圍。 時間是以 100 奈秒為單位指定。 埠驅動程序負責排序任何超過迷你埠驅動程式在此指定時間量的事件。

傳回值

如果呼叫成功,NewStream 會傳回S_OK。 否則,方法會傳回適當的錯誤碼。

言論

請注意,埠驅動程式會建立 IAllocatorMXF 物件,NewStream 方法會透過 pAllocatorMXF 參數輸入,但迷你埠驅動程式會建立 IMXF 物件,該方法會透過 ppMXF 參數輸出。 如需 IMXFIAllocatorMXF的詳細資訊,請參閱 MIDI 傳輸

IMiniportDMus::NewStream 方法 StreamType 參數的意義類似於 IMiniportMidi::NewStream 方法的 Capture 參數:

  • 在MIDI針腳上建立數據流時,IMiniportMidi::NewStream 方法的 擷取 參數會指出針腳是否要作為MIDI轉譯數據流的接收端(擷取 = FALSE)或作為MIDI擷取數據流的來源(擷取 = TRUE)。
  • 同樣地,在 MIDI 或 DirectMusic 針腳上建立數據流時,IMiniportDMus::NewStream 方法的 StreamType 參數可以指出針腳是要作為 MIDI 轉譯數據流的接收(StreamType = DMUS_STREAM_MIDI_RENDER)或作為 MIDI 擷取數據流的來源(StreamType = DMUS_STREAM_MIDI_CAPTURE)。
不過,DirectMusic 篩選上的針腳可以支援MIDI篩選條件無法使用的第三個選項。 針腳可作為波輸出數據流的來源(StreamType = DMUS_STREAM_WAVE_SINK)。 DMus 埠驅動程式會實作此數據流的波浪接收。 建立波浪輸出數據流之後,DMus 埠驅動程式會查詢數據流物件(埠驅動程式會透過 IMiniportDMus::NewStream 方法的 ppMXF 輸出參數取得其 ISynthSinkDMus 介面。 埠驅動程式的波浪接收會呼叫這個介面上的 Render 方法,從軟體合成器提取波數據。 如需詳細資訊,請參閱 Kernel-Mode 軟體合成器的 Wave 接收

ppMXFpOuterUnknownppServiceGrouppAllocatorMXF,以及 pMasterClock 參數遵循 COM 物件的 參考計數慣例

要求

要求 價值
目標平臺 桌面
標頭 dmusicks.h (包括 Dmusicks.h)
IRQL PASSIVE_LEVEL

另請參閱

DMUS_KERNEL_EVENT

IAllocatorMXF

IMXF

IMasterClock

IMiniport::GetDescription

IMiniportDMus

IMiniportMidi::NewStream

IServiceGroup

ISynthSinkDMus

KSDATAFORMAT

POOL_TYPE