Función AcxRtStreamNotifyPacketComplete (acxstreams.h)
El controlador llama a AcxRtStreamNotifyPacketComplete cuando se ha completado un paquete. El tiempo de finalización del paquete y el índice de paquetes basado en 0 se incluyen para mejorar el rendimiento del cliente. El marco de ACX establecerá los eventos de notificación asociados a la secuencia.
Sintaxis
NTSTATUS AcxRtStreamNotifyPacketComplete(
ACXSTREAM Stream,
ULONGLONG CompletedPacket,
ULONGLONG QPCCompletion
);
Parámetros
Stream
Objeto ACXSTREAM existente. Un objeto ACXSTREAM representa una secuencia de audio creada por un circuito. La secuencia se compone de una lista de elementos creados en función de los elementos del circuito primario.
CompletedPacket
Índice de paquetes basado en 0 que indica el paquete que se acaba de completar.
QPCCompletion
El tiempo de finalización del paquete, tal y como lo devuelve KeQueryPerformanceCounter. Este valor debe estar lo más cerca posible de la finalización de hardware real (por ejemplo, el controlador puede llamar a KeQueryPerformanceCounter desde en su rutina de servicio de interrupción).
Valor devuelto
Devuelve STATUS_SUCCESS
si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.
Comentarios
Se debe llamar a AcxRtStreamNotifyPacketComplete en DISPATCH_LEVEL o inferior.
Ejemplo
A continuación se muestra un ejemplo de uso.
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 de ACX
Versión mínima de ACX: 1.0
Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.
Requisitos
Requisito | Valor |
---|---|
Header | acxstreams.h |
IRQL | <= DISPATCH_LEVEL |