Partager via


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

Voir aussi