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 |