Compartir a través de


Método IMiniportWaveCíclico::NewStream (portcls.h)

El NewStream método crea una nueva instancia de una secuencia lógica asociada a un canal físico especificado.

Sintaxis

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
);

Parámetros

[out] Stream

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 en la interfaz IMiniportWaveStream del objeto de secuencia. El llamador especifica un valor de puntero válido que no sea NULL para este parámetro.

[in, optional] OuterUnknown

Puntero a la 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 será uno de los tipos de grupo no paginados definidos en la enumeración POOL_TYPE .

[in] Pin

Número del pin que se va a abrir. Si el método IMiniport::GetDescription del controlador de minipuerto WaveCíclico genera un descriptor de filtro que especifica un total de n generadores de patillas en el filtro, los valores válidos para el parámetro Pin se encuentran en el intervalo de 0 a n-1.

[in] Capture

Especifica si se va a crear una secuencia de captura o una secuencia de representación. Este parámetro es TRUE para un canal de captura (entrada) y FALSE para un canal de reproducción (salida).

[in] DataFormat

Puntero a una estructura KSDATAFORMAT que indica el formato que se va a usar para esta instancia.

[out] DmaChannel

Puntero de salida al canal DMA. 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 IDmaChannel del objeto DMA-channel del controlador de miniporte. El llamador especifica un valor de puntero válido que no sea NULL para este parámetro. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

[out] ServiceGroup

Puntero de salida para el grupo de servicios. 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 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. El llamador especifica un valor de puntero válido que no sea NULL para este parámetro.

Valor devuelto

NewStream devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error adecuado.

Comentarios

El NewStream método establece el estado inicial de la secuencia en KSSTATE_STOP y su posición inicial en cero. (Vea IMiniportWaveCyclicStream::SetState e IMiniportWaveCíclicaStream::GetPosition).

El controlador de puerto llama solo a los métodos siguientes en el objeto DmaChannel :

IDmaChannel::AllocatedBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

Los parámetros Stream, OuterUnknown, DmaChannel y ServiceGroup siguen las convenciones de recuento de referencias para objetos COM.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
IRQL PASSIVE_LEVEL

Consulte también

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCíclico

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE