Partilhar via


Método IMiniportWaveRTInputStream::GetReadPacket (portcls.h)

Retorna informações sobre dados capturados.

Sintaxe

NTSTATUS GetReadPacket(
  [out] ULONG   *PacketNumber,
  [out] DWORD   *Flags,
  [out] ULONG64 *PerformanceCounterValue,
  [out] BOOL    *MoreData
);

Parâmetros

[out] PacketNumber

Retorna o número do pacote relativo ao início da captura.

[out] Flags

Reservado para uso futuro. Deve ser definido como 0.

[out] PerformanceCounterValue

Retorna o valor do contador de desempenho correspondente ao instantâneo de amostragem do primeiro exemplo no pacote.

[out] MoreData

Retorna VERDADEIRO se houver mais dados prontos imediatamente. Opcionalmente, o sistema operacional pode chamar essa rotina imediatamente novamente depois de processar o pacote para obter as próximas informações do pacote. Se o driver retornar FALSE, a captura estará operando em tempo real.

Valor de retorno

GetReadPacket retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, a função retornará um código de status de erro apropriado.

STATUS_DEVICE_NOT_READY - O driver retornará esse erro se nenhum novo dado estiver disponível.

Observações

Antes de ler dados de áudio capturados do buffer WaveRT, o sistema operacional chama essa rotina para obter informações sobre os dados disponíveis.

O número do pacote identifica um pacote dentro do fluxo. Isso é redefinido como zero quando o fluxo está em KSSTATE_STOP. O número avança com cada buffer capturado. No número do pacote, o sistema operacional pode derivar o local do pacote dentro do buffer WaveRT e também pode derivar a posição do fluxo do pacote em relação ao início do fluxo.

O tamanho do pacote é o tamanho do buffer WaveRT dividido pelo NotificationCount passado para IMiniportWaveRTStreamNotification::AllocateBufferWithNotification. O sistema operacional pode chamar essa rotina a qualquer momento. Em operação normal, o sistema operacional chama essa rotina depois que o driver define o evento de notificação de buffer ou depois que uma chamada anterior retorna true para MoreData. Quando o sistema operacional chama essa rotina, o driver pode assumir que o sistema operacional terminou de ler todos os pacotes anteriores. Se o hardware tiver capturado dados suficientes, o driver poderá imediatamente estourar o próximo pacote completo para o buffer WaveRT e definir o evento de buffer novamente. No caso de estouro de captura (quando o sistema operacional não lê dados rapidamente o suficiente), o driver de áudio pode remover ou substituir alguns dados de áudio. O driver de áudio descarta ou substitui os dados mais antigos primeiro, o driver de áudio pode continuar a avançar seu contador de pacotes interno, embora o sistema operacional possa não ter lido os dados.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows 10 e posterior.
da Plataforma de Destino Windows
cabeçalho portcls.h
IRQL Nível passivo

Consulte também

IMiniportWaveRTInputStream