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 de KSSTREAM_POINTER représentant le pointeur de flux à cloner.

[in, optional] CancelCallback

facultatif. Pointeur vers une routine AVStrMiniCancelCallback fournie par minidriver. 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 que le pointeur de flux de clone obtenu doit avoir. Si ce n’est pas zéro, le nombre d’octets demandé est alloué immédiatement après le pointeur de flux retourné, et le champ Contexte 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 retournée

KsStreamPointerClone retourne soit STATUS_SUCCESS, indiquant que l’opération de clonage s’est terminée normalement, soit 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 est dans le même état (verrouillé ou déverrouillé). L’ajout d’un pointeur de flux de clone référençant 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 donc l’IRP auquel appartient le cadre, n’est pas terminé tant que le nombre de références n’est pas passé à zéro.

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

Consultez également Stream Pointeurs.

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

KsStreamPointerAdvance

KsStreamPointerAdvanceOffsets

KsStreamPointerAdvanceOffsetsAndUnlock

KsStreamPointerDelete

KsStreamPointerLock

KsStreamPointerUnlock