Structure KSPROCESSPIN (ks.h)

La structure KSPROCESSPIN décrit l’état du processus d’une broche spécifique.

Syntaxe

typedef struct _KSPROCESSPIN {
  PKSPIN            Pin;
  PKSSTREAM_POINTER StreamPointer;
  PKSPROCESSPIN     InPlaceCounterpart;
  PKSPROCESSPIN     DelegateBranch;
  PKSPROCESSPIN     CopySource;
  PVOID             Data;
  ULONG             BytesAvailable;
  ULONG             BytesUsed;
  ULONG             Flags;
  BOOLEAN           Terminate;
} KSPROCESSPIN, *PKSPROCESSPIN;

Membres

Pin

Pointeur vers une structure KSPIN décrite par la structure KSPROCESSPIN. Tout dans la structure fait référence à ce KSPIN.

StreamPointer

Pointeur vers une structure de KSSTREAM_POINTER qui pointe dans le flux d’entrée à l’emplacement d’entrée actuel ou dans le flux de sortie à l’emplacement de sortie actuel. Cela peut être utilisé, par exemple, par des broches de sortie pour marquer les informations sur les KSSTREAM_HEADER associées (ProcessPin-StreamPointer-StreamHeader-Flags>>>=...).

InPlaceCounterpart

Pointeur vers une structure KSPROCESSPIN. Si ce KSPROCESSPIN ne fait pas partie d’une transformation inplace , AVStream définit InPlaceCounterpart sur NULL. Si ce KSPROCESSPIN est l’entrée d’une transformation inplace, InPlaceCounterpart pointe vers la broche de processus de sortie pour la transformation. Si ce KSPROCESSPIN est la sortie d’une transformation inplace, InPlaceCounterpart pointe vers l’épingle du processus d’entrée pour la transformation.

DelegateBranch

Pointeur vers une structure KSPROCESSPIN. Si les images sortant de ce KSPROCESSPIN sont fractionnées et envoyées à plusieurs broches récepteur, et que le fractionnement n’entraîne pas de copie des données (autrement dit, le fractionnement envoie les images en lecture seule et que toutes les instances de broches fractionnées sont dans le même canal), DelegateBranch pointe vers la première instance de la broche de processus. Le séparateur gère automatiquement n’importe quelle broche de processus qui a un DelegateBranch non NULL.

CopySource

Pointeur vers une structure KSPROCESSPIN. Si les images sortant de cette broche de processus sont fractionnées et envoyées à plusieurs broches récepteurs d’une manière qui provoque une copie des données (autrement dit, l’un des filtres en aval modifie le cadre de données à l’aide d’une transformation sur place), CopySource pointe vers la broche de processus à partir de laquelle le cadre a été copié. Le séparateur gère automatiquement toute broche de processus qui a un CopySource non NULL.

Data

Pointeur vers une mémoire tampon. Si le code pin décrit par cette entrée de processus est une broche d’entrée, les données pointent vers l’octet disponible suivant des données à entrer. Si la broche décrite par cette entrée de processus est une broche de sortie, les données pointent vers une mémoire tampon de sortie dans laquelle les données traitées sont placées.

BytesAvailable

Ce membre spécifie le nombre d’octets de données disponibles dans Données.

BytesUsed

Ce membre spécifie le nombre d’octets de cette trame de données qui ont été utilisés par la fonction de processus. Les pilotes AVStream doivent définir ce membre pour mettre à jour la quantité de lecture ou d’écriture qu’ils ont.

Flags

Ce membre contient une copie des indicateurs de la structure KSSTREAM_HEADER appropriée, si ce KSPROCESSPIN est une broche d’entrée.

Terminate

Ce membre indique si la trame de données actuelle doit être envoyée en aval une fois la répartition du processus terminée. Si la valeur est TRUE, la trame est envoyée en aval même si toutes les données n’ont pas été consommées. Si la valeur est FALSE, la trame n’est pas libérée tant que toutes les données ne sont pas consommées.

Remarques

La structure KSPROCESSPIN est utilisée dans le modèle de traitement centré sur les filtres . Vous pouvez utiliser cette structure pour accéder aux données d’une broche d’entrée spécifique ou pour écrire les données traitées dans une broche de sortie.

Seuls les clients centrés sur les filtres utilisent des broches de processus. En outre, les broches de processus qui ont un DelegateBranch non NULL ou un CopySource non NULL ne sont généralement pas préoccupants pour le client. Le séparateur gère automatiquement les broches de processus avec ces pointeurs.

La plupart des clients s’intéressent aux membres Pin, Data, BytesAvailable, BytesUsed, Flags et Terminate. Les données peuvent être lues à partir du flux ou écrites dans le flux via le membre Data ; OctetsDisponible indique au client le nombre d’octets de données disponibles dans la trame de données (mémoire tampon) actuelle vers laquelle les données pointent. À mesure que le minidriver client lit ou écrit dans le flux, BytesUsed doit être mis à jour pour refléter le nombre d’octets de données qui ont été consommés. L’indicateur d’arrêt peut être défini si le minidriver est terminé avec l’image actuelle, malgré le fait que BytesUsed n’est pas égal à BytesAvailable. Une fois le minidriver sorti de la distribution de traitement, les pointeurs sont avancés et les images sont terminées comme il convient.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et dans Microsoft DirectX 8.0 et versions ultérieures.
En-tête ks.h (inclure Ks.h)

Voir aussi

KSPIN

KSPROCESSPIN_INDEXENTRY

KSSTREAM_HEADER

KSSTREAM_POINTER