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::SetStateIMiniportWaveCyclicStream::GetPosition.)

端口驱动程序仅对 DmaChannel 对象调用以下方法:

IDmaChannel::AllocatedBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

StreamOuterUnknownDmaChannelServiceGroup 参数遵循 COM 对象的引用计数约定

要求

要求
目标平台 通用
标头 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另请参阅

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE