Compartir a través de


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

El método NewStream 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 llamador en la que el método escribe un puntero en la interfaz IMiniportWaveStream del objeto de secuencia. El autor de la llamada especifica un valor de puntero válido que no esNULL para este parámetro.

[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 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 miniporte 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 están 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 de 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 al IDmaChannel interfaz del objeto DMA-channel del controlador de miniport. El autor de la llamada especifica un valor de puntero válido que no esNULL para este parámetro. Para obtener más información, vea la siguiente sección Comentarios.

[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. El autor de la llamada especifica un valor de puntero válido que no esNULL 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.

Observaciones

El método NewStream establece el estado inicial de la secuencia en KSSTATE_STOP y su posición inicial en cero. (Vea IMiniportWaveCyclicStream::SetState y IMiniportWaveStream::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, DmaChannely ServiceGroup siguen las convenciones de recuento de referencias para objetos COM.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de portcls.h (incluya Portcls.h)
irQL PASSIVE_LEVEL

Consulte también

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCíclico

IMiniportWaveStreamStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE