Partager via


KsStreamPointerClone, fonction (ks.h)

La fonction KsStreamPointerClone crée un clone d’un pointeur de flux donné.

Syntaxe

KSDDKAPI NTSTATUS KsStreamPointerClone(
  [in]           PKSSTREAM_POINTER  StreamPointer,
  [in, optional] PFNKSSTREAMPOINTER CancelCallback,
  [in]           ULONG              ContextSize,
  [out]          PKSSTREAM_POINTER  *CloneStreamPointer
);

Paramètres

[in] StreamPointer

Pointeur vers une structure KSSTREAM_POINTER représentant le pointeur de flux à cloner.

[in, optional] CancelCallback

Optionnel. Pointeur vers un minidriver fourni AVStrMiniCancelCallback routine. AVStream appelle cette routine si l’IRP associé à CloneStreamPointer est annulé.

[in] ContextSize

Ce paramètre indique le nombre d’octets d’informations de contexte minidriver dont le pointeur de flux de clone obtenu doit avoir. Si ce n’est pas différent de zéro, le nombre demandé d’octets est alloué immédiatement après le pointeur de flux retourné, et le champ Context de CloneStreamPointer pointe vers la mémoire allouée.

[out] CloneStreamPointer

Pointeur vers un pointeur vers une structure KSSTREAM_POINTER. Une fois l’opération de clonage terminée, cloneStreamPointer contient un pointeur vers l’adresse du pointeur de flux cloné.

Valeur de retour

KsStreamPointerClone retourne STATUS_SUCCESS, indiquant que l’opération de clonage s’est terminée normalement, ou un code d’erreur approprié.

Remarques

Le clone résultant fait initialement référence à la même trame de données que le pointeur de flux d’origine et se trouve dans le même état (verrouillé ou déverrouillé). L’ajout d’un pointeur de flux clone faisant référence à une trame de données incrémente le nombre de références sur cette image particulière. Notez que le cadre en question, et par conséquent, l’IRP auquel appartient le cadre n’est pas terminé tant que le nombre de références ne passe pas à zéro.

Vous pouvez utiliser le paramètre ContextSize de cet appel pour réduire les appels d’allocation.

Voir également pointeurs de flux.

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

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsets

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock