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 传输。
IMiniportDMus::NewStream
方法的 StreamType 参数的含义类似于 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 |