IMiniportWaveRTInputStream ::GetReadPacket, méthode (portcls.h)
Retourne des informations sur les données capturées.
Syntaxe
NTSTATUS GetReadPacket(
[out] ULONG *PacketNumber,
[out] DWORD *Flags,
[out] ULONG64 *PerformanceCounterValue,
[out] BOOL *MoreData
);
Paramètres
[out] PacketNumber
Retourne le nombre de paquets par rapport au début de la capture.
[out] Flags
Réservé pour une utilisation ultérieure. Doit être défini sur 0.
[out] PerformanceCounterValue
Retourne la valeur du compteur de performances correspondant à l’instant d’échantillonnage du premier échantillon du paquet.
[out] MoreData
Retourne TRUE s’il existe plus de données prêtes immédiatement. Le système d’exploitation peut éventuellement appeler immédiatement cette routine après avoir traité le paquet pour obtenir les informations suivantes sur les paquets. Si le pilote retourne FAUX, la capture fonctionne en temps réel.
Valeur de retour
GetReadPacket
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la fonction retourne un code d’état d’erreur approprié.
STATUS_DEVICE_NOT_READY : le pilote retourne cette erreur si aucune nouvelle donnée n’est disponible.
Remarques
Avant de lire les données audio capturées à partir de la mémoire tampon WaveRT, le système d’exploitation appelle cette routine pour obtenir des informations sur les données disponibles.
Le numéro de paquet identifie un paquet dans le flux. Cela est réinitialisé à zéro lorsque le flux se trouve dans KSSTATE_STOP. Le nombre avance avec chaque mémoire tampon capturée. À partir du numéro de paquet, le système d’exploitation peut dériver l’emplacement du paquet dans la mémoire tampon WaveRT et peut également dériver la position de flux du paquet par rapport au début du flux.
La taille du paquet est la taille de mémoire tampon WaveRT divisée par le NotificationCount passé à IMiniportWaveRTStreamNotification ::AllocateBufferWithNotification. Le système d’exploitation peut appeler cette routine à tout moment. En opération normale, le système d’exploitation appelle cette routine après que le pilote définit l’événement de notification de mémoire tampon ou après qu’un appel précédent retourne true pour MoreData. Lorsque le système d’exploitation appelle cette routine, le pilote peut supposer que le système d’exploitation a terminé de lire tous les paquets précédents. Si le matériel a capturé suffisamment de données, le pilote peut immédiatement éclater le paquet complet suivant vers la mémoire tampon WaveRT et définir à nouveau l’événement de mémoire tampon. Dans le cas d’un dépassement de capacité de capture (lorsque le système d’exploitation ne lit pas assez rapidement les données), le pilote audio peut supprimer ou remplacer certaines données audio. Le pilote audio supprime ou remplace d’abord les données les plus anciennes, le pilote audio peut continuer à avancer son compteur de paquets interne même si le système d’exploitation n’a peut-être pas lu les données.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows 10 et versions ultérieures. |
plateforme cible | Windows |
d’en-tête | portcls.h |
IRQL | Niveau passif |