AcxRtStreamNotifyPacketComplete, fonction (acxstreams.h)
Le pilote appelle AcxRtStreamNotifyPacketComplete lorsqu’un paquet est terminé. Le temps d’achèvement des paquets et l’index de paquets basés sur 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 basé sur 0 indiquant le paquet qui vient d’être terminé.
QPCCompletion
Temps d’achèvement du paquet, tel qu’il est retourné 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 sa routine de service d’interruption).
Valeur de retour
Retourne STATUS_SUCCESS
si l’appel a réussi. Sinon, elle retourne un code d’erreur approprié. Pour plus d’informations, consultez Using NTSTATUS Values.
Remarques
AcxRtStreamNotifyPacketComplete doit être appelé à DISPATCH_LEVEL ou inférieur.
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 minimale d’ACX : 1.0
Pour plus d’informations sur les versions ACX, consultez vue d’ensemble de la version ACX.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | acxstreams.h |
IRQL | <= DISPATCH_LEVEL |