共用方式為


DMus 埠驅動程式

DMus 埠驅動程式會管理 Microsoft DirectMusic 合成器或擷取裝置。 相較于僅支援簡單 MIDI 裝置的 MIDI 埠驅動程式,DMus 埠驅動程式支援具有進階 MIDI 功能的裝置,例如精確度排序器計時、可下載的音效 (DLS) 和通道群組。 配接器驅動程式會實作系結至 DMus 埠驅動程式的對應 DMus 迷你埠驅動程式 ,以形成 DirectMusic 篩選 (請參閱 MIDI 和 DirectMusic Filters) ,以轉譯或擷取 MIDI 資料流程。

DMus 埠驅動程式會將 IPortDMus 介面公開至迷你埠驅動程式。 IPortDMus 會繼承基底介面 IPort中的方法。 IPortDMus 提供下列其他方法:

IPortDMus::Notify

通知埠驅動程式 MIDI 合成器或擷取裝置已進階至 MIDI 資料流程中的新位置。

IPortDMus::RegisterServiceGroup

向埠驅動程式註冊服務群組物件。 已註冊的服務群組包含一或多個服務常式的清單,這些常式會在迷你埠驅動程式呼叫 Notify時由埠驅動程式呼叫;如需詳細資訊,請參閱 服務接收和服務群組物件

DMus 埠驅動程式也會為每個資料流程建立記憶體 配置器 ,並將配置器的 IAllocatorMXF 介面公開至迷你埠驅動程式的資料流程物件。 IAllocatorMXF 會繼承基底介面 IMXF中的方法。 IAllocatorMXF 提供下列其他方法:

IAllocatorMXF::GetBuffer

取得 MIDI 事件或事件清單的緩衝區,這些事件太大而無法容納 在DMUS_KERNEL_EVENT 結構中。

IAllocatorMXF::GetBufferSize

取得 GetBuffer 方法所擷取之緩衝區的位元組大小。

IAllocatorMXF::GetMessage

取得訊息緩衝區,其中包含DMUS_KERNEL_EVENT類型之單一結構的儲存體。

IAllocatorMXF::P utBuffer

未使用。 DMus 埠和迷你埠驅動程式物件會透過各自的 IPortDMusIMiniportMidi 介面彼此通訊。 此外,埠驅動程式會透過 IMXF 介面與迷你埠驅動程式的串流物件通訊,而迷你埠驅動程式的串流物件會透過其 IAllocatorMXF 介面與埠驅動程式的配置器通訊。

如需 DirectMusic 驅動程式支援的詳細資訊,請參閱 合成器 Miniport 驅動程式概觀

在 Windows XP 和更新版本中, IPortDMusIPortMidi 介面都是在單一內部驅動程式模組中實作。 這項匯總是由這兩個介面的相似度所促進。 例如,這兩個介面都會定義相同的方法。 針對舊版 Windows 所撰寫的應用程式應該不會在 IPortMidiIPortDMus 介面的行為上看到因 MIDI 和 DMus 埠驅動程式的匯總而產生的變更。