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