Compartilhar via


Função AcxRtStreamNotifyPacketComplete (acxstreams.h)

O driver chama AcxRtStreamNotifyPacketComplete quando um pacote é concluído. O tempo de conclusão do pacote e o índice de pacote baseado em 0 estão incluídos para melhorar o desempenho do cliente. A estrutura ACX definirá todos os eventos de notificação associados ao fluxo.

Sintaxe

NTSTATUS AcxRtStreamNotifyPacketComplete(
  ACXSTREAM Stream,
  ULONGLONG CompletedPacket,
  ULONGLONG QPCCompletion
);

Parâmetros

Stream

Um objeto ACXSTREAM existente. Um objeto ACXSTREAM representa um fluxo de áudio criado por um circuito. O fluxo é composto por uma lista de elementos criados com base nos elementos do circuito pai.

CompletedPacket

Um índice de pacote baseado em 0 que indica o pacote que acabou de ser concluído.

QPCCompletion

O tempo de conclusão do pacote, conforme retornado por KeQueryPerformanceCounter. Esse valor deve estar o mais próximo possível da conclusão real do hardware (por exemplo, o driver pode chamar KeQueryPerformanceCounter em sua Rotina de Serviço de Interrupção).

Retornar valor

Retorna STATUS_SUCCESS se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.

Comentários

AcxRtStreamNotifyPacketComplete deve ser chamado em DISPATCH_LEVEL ou abaixo.

Exemplo

O uso de exemplo é mostrado abaixo.

completedPacket = (ULONG)InterlockedIncrement((LONG*)&m_CurrentPacket) - 1;

InterlockedExchange64(&m_LastPacketStart.QuadPart, m_CurrentPacketStart.QuadPart);
InterlockedExchange64(&m_CurrentPacketStart.QuadPart, QPC.QuadPart);

// Tell ACX we've completed the packet.
(void)AcxRtStreamNotifyPacketComplete(m_Stream, completedPacket, QPC.QuadPart);

Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxstreams.h
IRQL <= DISPATCH_LEVEL

Confira também