Partager via


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

Voir aussi