AcxRtStreamNotifyPacketComplete, fonction (acxstreams.h)
Le pilote appelle AcxRtStreamNotifyPacketComplete lorsqu’un paquet est terminé. Le temps d’achèvement du paquet et l’index de paquets de base 0 sont inclus pour améliorer les performances du client. L’infrastructure ACX définit tous les événements de notification associés au flux.
Syntaxe
NTSTATUS AcxRtStreamNotifyPacketComplete(
ACXSTREAM Stream,
ULONGLONG CompletedPacket,
ULONGLONG QPCCompletion
);
Paramètres
Stream
Objet ACXSTREAM existant. Un objet ACXSTREAM représente un flux audio créé par un circuit. Le flux est composé d’une liste d’éléments créés en fonction des éléments du circuit parent.
CompletedPacket
Index de paquets de base 0 indiquant le paquet qui vient d’être terminé.
QPCCompletion
Heure d’achèvement du paquet, telle que retournée par KeQueryPerformanceCounter. Cette valeur doit être aussi proche que possible de l’achèvement matériel réel (par exemple, le pilote peut appeler KeQueryPerformanceCounter à partir de dans sa routine de service d’interruption).
Valeur retournée
Retourne STATUS_SUCCESS
si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Utilisation de valeurs NTSTATUS.
Remarques
AcxRtStreamNotifyPacketComplete doit être appelé à DISPATCH_LEVEL ou en dessous.
Exemple
L’exemple d’utilisation est illustré ci-dessous.
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);
Configuration requise pour ACX
Version ACX minimale : 1.0
Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | acxstreams.h |
IRQL | <= DISPATCH_LEVEL |