Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El método NewStream crea una nueva instancia de una secuencia lógica asociada a un canal físico especificado.
Sintaxis
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
);
Parámetros
[out] MXF
Puntero de salida para la nueva secuencia. Este parámetro apunta a una variable de puntero asignada por el autor de la llamada en la que el método escribe un puntero a la interfaz IMXF del objeto de secuencia.
[in, optional] OuterUnknown
Puntero al interfaz IUnknown de un objeto que necesita agregar el objeto de secuencia. Este parámetro es opcional. Si no se requiere la agregación, el autor de la llamada especifica este parámetro como NULL.
[in] PoolType
Especifica el tipo de grupo de memoria desde el que se debe asignar el almacenamiento para el objeto de canal DMA. Este parámetro se establece en uno de los valores de enumeración de POOL_TYPE.
[in] PinID
Especifica el identificador de patilla. Este parámetro identifica el pin que se va a abrir. Si el método IMiniport::GetDescription del controlador de miniporte DMus genera un descriptor de filtro que especifica un total de n generadores de patillas en el filtro, los identificadores de pin válidos están en el intervalo de 0 a n-1.
[in] StreamType
Especifica el tipo de flujo de datos que se va a crear. Este parámetro se establece en uno de los siguientes valores de enumeración de DMUS_STREAM_TYPE:
DMUS_STREAM_MIDI_RENDER
Especifica una secuencia de salida MIDI (reproducción).
DMUS_STREAM_MIDI_CAPTURE
Especifica un flujo de entrada MIDI.
DMUS_STREAM_WAVE_SINK
Especifica un flujo de salida de onda.
Para obtener más información, vea la siguiente sección Comentarios.
[in] DataFormat
Puntero a una estructura KSDATAFORMAT de streaming de kernel que especifica el formato de datos que se va a usar para esta instancia
[out] ServiceGroup
Puntero de salida para el grupo de servicios. Este parámetro apunta a una variable de puntero asignada por el llamador en la que el método escribe un puntero en la interfaz IServiceGroup del objeto de grupo de servicios de la secuencia. Este es el grupo de servicios que se está registrando para la notificación de interrupción.
[in] AllocatorMXF
Puntero a un objeto IAllocatorMXF . Este es el asignador de memoria del controlador de puerto, que es necesario para reciclar DMUS_KERNEL_EVENT estructuras.
[in] MasterClock
Puntero a un objeto IMasterClock . Este reloj maestro pasa un contenedor para el reloj KS al controlador de miniport. El puntero del reloj maestro es necesario para sincronizar con la hora de referencia.
[out] SchedulePreFetch
Puntero de salida para la hora de captura previa de programación. Este parámetro es un puntero a una variable ULONGLONG asignada por el autor de la llamada en la que el método escribe un valor de hora que especifica cuánto se va a consultar para los eventos. El tiempo se especifica en unidades de 100 nanosegundos. El controlador de puerto es responsable de secuenciar los eventos que superen la cantidad de tiempo que el controlador de miniporte especifica aquí.
Valor devuelto
NewStream devuelve S_OK si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error adecuado.
Observaciones
Tenga en cuenta que el controlador de puerto crea el objeto IAllocatorMXF que el NewStream método introduce a través del parámetro pAllocatorMXF , pero el controlador de miniporta crea el objeto IMXF que el método genera a través del parámetro ppMXF . Para obtener más información sobre IMXF e IAllocatorMXF, consulta Transporte MIDI.
El significado IMiniportDMus::NewStream del parámetro StreamType del método es similar al del parámetro Capture del método IMiniportMidi::NewStream:
- Al crear una secuencia en un pin MIDI, el parámetro Capture del método IMiniportMidi::NewStream indica si el pin debe servir como receptor de una secuencia de representación MIDI (Capture = FALSE) o como origen de una secuencia de captura MIDI (Capture = TRUE).
-
Del mismo modo, al crear una secuencia en un pin MIDI o DirectMusic, el
IMiniportDMus::NewStreamparámetro StreamType del método puede indicar si el pin sirve como receptor para una secuencia de representación MIDI (StreamType = DMUS_STREAM_MIDI_RENDER) o como origen de una secuencia de captura MIDI (StreamType = DMUS_STREAM_MIDI_CAPTURE).
IMiniportDMus::NewStream del parámetro de salida ppMXF del método) para su interfaz ISynthSinkDMus . El receptor de onda del controlador de puerto llama al método Render en esta interfaz para extraer datos de onda del sintetizador de software. Para obtener más información, vea Un receptor de onda para Kernel-Mode sintetizadores de software.
Los parámetros ppMXF, pOuterUnknown, ppServiceGroup, pAllocatorMXF y pMasterClock siguen las convenciones de recuento de referencias para objetos COM.
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Escritorio |
| encabezado | dmusicks.h (incluye Dmusicks.h) |
| irQL | PASSIVE_LEVEL |