Поделиться через


Метод 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

Номер открываемого контакта. Если метод IMiniport::GetDescription драйвера WaveCyclic miniport выводит дескриптор фильтра, указывающий в общей сложности n фабрик контактов в фильтре, то допустимые значения параметра Pin находятся в диапазоне от 0 до n-1.

[in] Capture

Указывает, следует ли создать поток захвата или поток отрисовки. Этот параметр имеет значение TRUE для канала записи (входных данных) и FALSE для канала воспроизведения (вывода).

[in] DataFormat

Указатель на структуру KSDATAFORMAT , указывающую формат, используемый для данного экземпляра.

[out] DmaChannel

Выходной указатель на канал DMA. Этот параметр указывает на выделенную вызывающим объектом переменную указателя, в которую метод записывает указатель на интерфейс IDmaChannel объекта DMA-канала драйвера miniport. Вызывающий объект задает допустимое значение указателя, отличное от NULL , для этого параметра. Дополнительные сведения см. в разделе "Примечания".

[out] ServiceGroup

Указатель вывода для группы служб. Этот параметр указывает на выделенную вызывающим объектом переменную указателя, в которую метод записывает указатель на интерфейс IServiceGroup объекта группы служб потока. Это группа служб, которая регистрируется для уведомления о прерывании. Вызывающий объект задает допустимое значение указателя, отличное от NULL , для этого параметра.

Возвращаемое значение

NewStream возвращает STATUS_SUCCESS, если вызов был успешным. В противном случае метод возвращает соответствующий код ошибки.

Комментарии

Метод NewStream задает начальное состояние потока KSSTATE_STOP, а его начальное положение — нулевое. (См . IMiniportWaveCyclicStream::SetState и IMiniportWaveCyclicStream::GetPosition.)

Драйвер порта вызывает только следующие методы в объекте DmaChannel :

IDmaChannel::AllocatedBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

Параметры Stream, OuterUnknown, DmaChannel и ServiceGroup следуют соглашениям о подсчете ссылок для COM-объектов.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL PASSIVE_LEVEL

См. также раздел

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE