Compartilhar via


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

O método NewStream 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 por chamador na qual o método grava um ponteiro na interface IMiniportWaveCyclicStream do objeto de fluxo. O chamador especifica um valor de ponteiro NULL NULL válido para esse parâmetro.

[in, optional] OuterUnknown

Ponteiro para a interface IUnknown de um objeto que precisa agregar o objeto de fluxo. Esse parâmetro é opcional. Se a agregação não for necessária, o chamador especifica 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 produzir um descritor de filtro que especifica um total de n fixar fábricas no filtro, os valores válidos para o parâmetro Pin estarão no intervalo de 0 a n-1.

[in] Capture

Especifica se um fluxo de captura ou um fluxo de renderização deve ser criado. 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 indicando 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 por chamador na qual o método grava um ponteiro na interface IDmaChannel do objeto DMA-channel do driver de miniport. O chamador especifica um valor de ponteiro NULL NULL válido 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 por chamador na qual o método grava um ponteiro na 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 NULL NULL válido para esse parâmetro.

Valor de retorno

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

Observações

O método NewStream 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, DmaChannele ServiceGroup seguem as convenções de contagem de referência para objetos COM.

Requisitos

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

Consulte também

IDmaChannel

IMiniport::GetDescription

IMiniportWaveCyclic

IMiniportWaveCyclicStream

IServiceGroup

KSDATAFORMAT

POOL_TYPE