Share via


Método IMiniportWaveCyclic::NewStream (portcls.h)

O NewStream método cria uma nova instância de um fluxo lógico associado a um canal físico especificado.

Sintaxe

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

Ponteiro de saída para o novo fluxo. Esse parâmetro aponta para uma variável de ponteiro alocada pelo chamador na qual o método grava um ponteiro na interface IMiniportWaveCyclicStream do objeto de fluxo. O chamador especifica um valor de ponteiro válido e não NULL para esse parâmetro.

[in, optional] OuterUnknown

Ponteiro para a interface IUnknown de um objeto que precisa agregar o objeto stream. Esse parâmetro é opcional. Se a agregação não for necessária, o chamador especificará esse parâmetro como NULL.

[in] PoolType

Especifica o tipo de pool de memória do qual o armazenamento do objeto de canal DMA deve ser alocado. Esse parâmetro será um dos tipos de pool nãopagados definidos na enumeração POOL_TYPE .

[in] Pin

Número do pino a ser aberto. Se o método IMiniport::GetDescription do driver de miniporto WaveCyclic gerar um descritor de filtro que especifica um total de n fábricas de pinos no filtro, os valores válidos para o parâmetro Pin estarão no intervalo de 0 a n-1.

[in] Capture

Especifica se é necessário criar um fluxo de captura ou um fluxo de renderização. Esse parâmetro é TRUE para um canal de captura (entrada) e FALSE para um canal de reprodução (saída).

[in] DataFormat

Ponteiro para uma estrutura KSDATAFORMAT que indica o formato a ser usado para essa instância.

[out] DmaChannel

Ponteiro de saída para o canal DMA. Esse parâmetro aponta para uma variável de ponteiro alocada pelo chamador na qual o método grava um ponteiro para a interface IDmaChannel do objeto DMA-channel do driver de miniport. O chamador especifica um valor de ponteiro válido e não NULL para esse parâmetro. Para obter mais informações, consulte a seção Comentários a seguir.

[out] ServiceGroup

Ponteiro de saída para o grupo de serviços. Esse parâmetro aponta para uma variável de ponteiro alocada pelo chamador na qual o método grava um ponteiro para a interface IServiceGroup do objeto do grupo de serviços do fluxo. Esse é o grupo de serviços que está sendo registrado para notificação de interrupção. O chamador especifica um valor de ponteiro válido e não NULL para esse parâmetro.

Retornar valor

NewStream retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retorna um código de erro apropriado.

Comentários

O NewStream método define o estado inicial do fluxo como KSSTATE_STOP e sua posição inicial como zero. (Consulte IMiniportWaveCyclicStream::SetState e IMiniportWaveCyclicStream::GetPosition.)

O driver de porta chama apenas os seguintes métodos no objeto DmaChannel :

IDmaChannel::AllocatedBufferSize

IDmaChannel::BufferSize

IDmaChannel::CopyFrom

IDmaChannel::CopyTo

IDmaChannel::SetBufferSize

IDmaChannel::SystemAddress

Os parâmetros Stream, OuterUnknown, DmaChannel e ServiceGroup seguem as convenções de contagem de referência para objetos COM.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho portcls.h (inclua Portcls.h)
IRQL PASSIVE_LEVEL

Confira também

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE