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
指定引脚 ID。 此参数标识要打开的引脚。 如果 DMus 微型端口驱动程序的 IMiniport::GetDescription 方法输出一个筛选器描述符,该描述符指定筛选器上总共 n 个引脚工厂,则有效引脚 ID 的范围为 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 参数输入该对象,但微型端口驱动程序创建该方法通过 ppMXF 参数输出的 IMXF 对象。 有关 IMXF 和 IAllocatorMXF 的详细信息,请参阅 MIDI 传输。
方法的 StreamType 参数的含义IMiniportDMus::NewStream
类似于 IMiniportMidi::NewStream 方法的 Capture 参数:
- 在 MIDI 引脚上创建流时, IMiniportMidi::NewStream 方法的 Capture 参数指示该引脚是用作 MIDI 呈现流的接收器 (捕获 = FALSE) ,还是作为 MIDI 捕获流的源 (捕获 = TRUE) 。
-
同样,在 MIDI 或 DirectMusic 引脚上创建流时,
IMiniportDMus::NewStream
该方法的 StreamType 参数可以指示该引脚是用作 MIDI 呈现流的接收器 (StreamType = DMUS_STREAM_MIDI_RENDER) ,还是作为 MIDI 捕获流的源 (StreamType = DMUS_STREAM_MIDI_CAPTURE) 。
IMiniportDMus::NewStream
方法的 ppMXF 输出参数) 获取其 ISynthSinkDMus 接口。 端口驱动程序的波形接收器调用此接口上的 Render 方法,以从软件合成器中拉取波形数据。 有关详细信息,请参阅 适用于 Kernel-Mode 软件合成器的波形接收器。
ppMXF、pOuterUnknown、ppServiceGroup、pAllocatorMXF 和 pMasterClock 参数遵循 COM 对象的引用计数约定。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dmusicks.h (包括 Dmusicks.h) |
IRQL | PASSIVE_LEVEL |