Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод 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-channel. Этот параметр имеет одно из значений перечисления POOL_TYPE.
[in] PinID
Указывает идентификатор пин-кода. Этот параметр определяет пин-код, который должен быть открыт. Если метод IMiniport драйвера DMus miniport ::GetDescription выводит дескриптор фильтра, указывающий общую сумму n пин-фабрик в фильтре, то допустимые идентификаторы пин-кода находятся в диапазоне от 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 , но минипорт-драйвер создает объект IMXF , который метод выводит через параметр ppMXF . Дополнительные сведения о IMXF и IAllocatorMXF см. в разделе "Транспорт MIDI".
Значение параметра StreamType метода похоже на значениеIMiniportDMus::NewStream параметра Capture метода IMiniportMidi::NewStream:
- При создании потока на пин-коде MIDI параметр метода IMiniportMidi::NewStreamCapture указывает, должен ли пин-код служить приемником для потока отрисовки MIDI (Capture = FALSE) или в качестве источника потока записи MIDI (capture = 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 (include Dmusicks.h) |
| IRQL | пассивный уровень |