KsPinGetTrailingEdgeStreamPointer, fonction (ks.h)
La fonction KsPinGetTrailingEdgeStreamPointer acquiert le pointeur de flux de périphérie de fin de 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 doit retourner le pointeur de flux de périphérie 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 de l’un des éléments suivants :
KSSTREAM_POINTER_STATE_UNLOCKED
Acquérir le pointeur de flux de périphérie de pointe, qu’il référence ou non une trame de données.
Aucune tentative ne peut être effectuée pour accéder à toutes les données associées au pointeur jusqu’à ce que le pointeur soit 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 principal. 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 de retour
KsPinGetTrailingEdgeStreamPointer retourne un pointeur vers une structure KSSTREAM_POINTER représentant le pointeur de flux de périphérie de fin ou NULL. Une valeur de retour de 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. Sinon, NULL peut indiquer qu’il n’y a pas de file d’attente associée à la broche. Dans ce cas, la broche en question n’utilise pas le mécanisme de transport standard. Une valeur de retour de NULL peut également indiquer qu’une tentative de verrouillage du bord de fin a échoué. En d’autres termes, il n’existe aucune trame de données actuellement associée au bord de pointe.
Remarques
Le pointeur de flux de bord de fin est un pointeur spécial dans 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. S’il existe ce pointeur, il pointe vers les données les plus anciennes de la file d’attente, sauf si une KsStreamPointerAdvanceXxx ou un appel KsStreamPointerUnlock. Les données plus anciennes peuvent également exister dans la file d’attente si des pointeurs de flux clonés existent pour les images 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 principal 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 jusqu’à ce qu’elles quittent la fenêtre en raison de l’avancement du bord de fin. Notez que les images entre le bord de début 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 Pin-Centric traitement et Filter-Centric traitement.
KsPinGetTrailingEdgeStreamPointer ne fonctionnera pas, sauf si le descripteur de broche pour 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.
Exigences
Exigence | Valeur |
---|---|
client minimum 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 | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |
IRQL | <=DISPATCH_LEVEL |
Voir aussi
KsPinGetLeadingEdgeStreamPointer