IMiniportWaveCyclic::NewStream 方法(portcls.h)
NewStream
方法创建与指定物理通道关联的逻辑流的新实例。
语法
NTSTATUS NewStream(
[out] PMINIPORTWAVECYCLICSTREAM *Stream,
[in, optional] PUNKNOWN OuterUnknown,
[in] POOL_TYPE PoolType,
[in] ULONG Pin,
[in] BOOLEAN Capture,
[in] PKSDATAFORMAT DataFormat,
[out] PDMACHANNEL *DmaChannel,
[out] PSERVICEGROUP *ServiceGroup
);
参数
[out] Stream
新流的输出指针。 此参数指向调用方分配的指针变量,该方法将指针写入流对象的 IMiniportWaveCyclicStream 接口。 调用方指定此参数的有效非NULL 指针值。
[in, optional] OuterUnknown
指向需要聚合流对象的对象的 IUnknown 接口的指针。 此参数是可选的。 如果不需要聚合,调用方将此参数指定为 NULL 。
[in] PoolType
指定应从中分配 DMA 通道对象的存储的内存池的类型。 此参数将是 POOL_TYPE 枚举中定义的非分页池类型之一。
[in] Pin
要打开的引脚数。 如果 WaveCyclic 微型端口驱动程序的 IMiniport::GetDescription 方法输出筛选器描述符,该描述符指定筛选器上的总 n 引脚工厂,则参数 Pin 的有效值在范围 0 到 n-1 中。
[in] Capture
指定是创建捕获流还是呈现流。 此参数 捕获(输入)通道的 TRUE,对于播放(输出)通道 FALSE。
[in] DataFormat
指向 KSDATAFORMAT 结构的指针,该结构指示要用于此实例的格式。
[out] DmaChannel
指向 DMA 通道的输出指针。 此参数指向调用方分配的指针变量,该方法将指针写入到微型端口驱动程序 DMA 通道对象的 IDmaChannel 接口。 调用方指定此参数的有效非NULL 指针值。 有关详细信息,请参阅以下“备注”部分。
[out] ServiceGroup
服务组的输出指针。 此参数指向调用方分配的指针变量,该方法将指针写入流服务组对象的 IServiceGroup 接口。 这是正在为中断通知注册的服务组。 调用方指定此参数的有效非NULL 指针值。
返回值
如果调用成功,NewStream
返回STATUS_SUCCESS。 否则,该方法将返回适当的错误代码。
言论
NewStream
方法将流的初始状态设置为KSSTATE_STOP,其初始位置设置为零。 (请参阅 IMiniportWaveCyclicStream::SetState 和 IMiniportWaveCyclicStream::GetPosition.)
端口驱动程序仅对 DmaChannel 对象调用以下方法:
IDmaChannel::AllocatedBufferSize
Stream、OuterUnknown、DmaChannel,ServiceGroup 参数遵循 COM 对象的 引用计数约定。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |