Partager via


KsPinGetTrailingEdgeStreamPointer, fonction (ks.h)

La fonction KsPinGetTrailingEdgeStreamPointer acquiert le pointeur de flux de bord de fin pour la file d’attente associée à la broche spécifiée.

Syntaxe

KSDDKAPI PKSSTREAM_POINTER KsPinGetTrailingEdgeStreamPointer(
  [in] PKSPIN                 Pin,
  [in] KSSTREAM_POINTER_STATE State
);

Paramètres

[in] Pin

Pointeur vers la structure KSPIN pour laquelle la file d’attente renvoie le pointeur de flux de bord de fin.

[in] State

Ce paramètre spécifie l’état dans lequel acquérir le pointeur de flux de bord de fin. Il peut s'agir d'une des méthodes suivantes :

KSSTREAM_POINTER_STATE_UNLOCKED

Acquérir le pointeur de flux de pointe, qu’il référence ou non une trame de données.

Aucune tentative d’accès aux données associées au pointeur ne peut être effectuée tant que le pointeur n’est pas verrouillé. Notez également que les images associées à un pointeur de flux déverrouillé peuvent être annulées.

KSSTREAM_POINTER_STATE_LOCKED

Acquérir et verrouiller le pointeur de flux de bord d’entrée. Si aucune trame de données n’est associée au pointeur de flux, retournez NULL. Si un pointeur nonnull est retourné, il s’agit d’un pointeur de flux verrouillé et d’une trame de données associée. Les images associées à un pointeur de flux verrouillé ne peuvent pas être annulées.

Valeur retournée

KsPinGetTrailingEdgeStreamPointer retourne un pointeur vers une structure KSSTREAM_POINTER représentant le pointeur de flux de bord de fin ou NULL. Une valeur de retour NULL peut indiquer qu’il n’existe aucun bord de fin pour la file d’attente associée à la broche. Dans ce cas, le descripteur de broche ne spécifie probablement pas que la broche doit avoir un bord de fin distinct. Null peut également indiquer qu’aucune file d’attente n’est associée à la broche. Dans ce cas, la broche en question n’utilise pas le mécanisme de transport standard. Une valeur de retour NULL peut également indiquer qu’une tentative de verrouillage du bord de fin a échoué. En d’autres termes, aucune trame de données n’est actuellement associée à la périphérie de pointe.

Remarques

Le pointeur de flux de bord de fin est un pointeur spécial vers le flux de données qui existe si et uniquement si le descripteur de broche pour la broche spécifie un bord de fin distinct. Si ce pointeur existe, il pointe vers les données les plus anciennes de la file d’attente, sauf si un appel KsStreamPointerAdvanceXxx ou KsStreamPointerUnlock est spécifiquement avancé. Des données plus anciennes peuvent également exister dans la file d’attente si des pointeurs de flux cloné existent pour les trames antérieures à celles vers lesquelles pointe le bord de fin.

Les trames de données qui résident dans la fenêtre entre le pointeur de flux de bord de pointe et le pointeur de flux de bord de fin ont au moins un nombre de références et ne quittent donc pas la file d’attente et ne seront pas terminées tant qu’elles ne quittent pas la fenêtre à la suite de l’avancement du bord de fin. Notez que les trames entre le bord d’arrivée et le bord de fin ne sont pas verrouillées par défaut et peuvent donc être annulées.

KsPinGetTrailingEdgeStreamPointer est principalement utilisé dans les filtres centrés sur les broches. Pour plus d’informations, consultez Traitement centré sur les épingles et Traitement centré sur les filtres.

KsPinGetTrailingEdgeStreamPointer ne fonctionnera que si le descripteur de broche de la broche spécifie que la file d’attente doit avoir un bord de fin distinct en définissant l’indicateur KSPIN_FLAG_DISTINCT_TRAILING_EDGE.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX.
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL <=DISPATCH_LEVEL

Voir aussi

KsPinGetLeadingEdgeStreamPointer

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerClone

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock