Partager via


structure KSALLOCATOR_FRAMING (ks.h)

La structure KSALLOCATOR_FRAMING est utilisée pour interroger les exigences de cadrage et envoyer des demandes de création d’allocator.

Syntaxe

typedef struct {
  union {
    ULONG OptionsFlags;
    ULONG RequirementsFlags;
  };
#if ...
  POOL_TYPE PoolType;
#else
  ULONG     PoolType;
#endif
  ULONG     Frames;
  ULONG     FrameSize;
  union {
    ULONG FileAlignment;
    LONG  FramePitch;
  };
  ULONG     Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;

Membres

OptionsFlags

Spécifie les indicateurs d’option d’allocation spécifiés lors de la création de l’allocator pour le point de connexion. Le membre OptionsFlags peut contenir l’une des valeurs suivantes.

OptionsFlags Description
KSALLOCATOR_OPTIONF_COMPATIBLE Indique que les options de cadrage de l’allocateur en cours de création sont compatibles avec l’allocateur en aval. Cette option est généralement spécifiée lorsqu’un modificateur sur place se voit attribuer un allocateur pour les mémoires tampons de copie. Si le filtre n’est pas nécessaire pour modifier une image donnée, il peut envoyer le frame au filtre en aval sans allouer d’image supplémentaire à partir de l’allocateur en aval lorsque cette option est spécifiée.
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY Indique que la mémoire système doit être utilisée pour les allocations. Lorsqu’il est spécifié, l’allocateur doit allouer de la mémoire du pool comme spécifié dans le membre PoolType . Sinon, il est supposé que le récepteur fournit un mappage d’adresses système à la RAM embarquée ou à d’autres formes de stockage sur l’appareil.

RequirementsFlags

Valeur de type ULONG qui décrit les exigences d’allocation pour ce point de connexion pour les opérations de requête. Le membre RequirementsFlags peut contenir les valeurs suivantes.

Valeur de l’indicateur Description
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER Indique que le point de connexion peut effectuer une modification sur place.
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY Indique que le point de connexion nécessite de la mémoire système pour les allocations. Si cette option n’est pas définie, il est supposé que le récepteur fournit un mappage d’espace d’adressage système à la RAM embarquée ou à d’autres formes de stockage sur l’appareil.
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY Indique que le point de connexion nécessite que les filtres en aval conservent l’intégrité des données des trames spécifiées.
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE Indique que le point de connexion nécessite qu’il alloue toutes les trames envoyées.
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY Indique que les indicateurs Configuration requise sont des préférences uniquement et que le point de connexion est en mesure d’allouer des images qui ne répondent pas à ces spécifications.

PoolType

Structure de type POOL_TYPE qui spécifie le type de pool d’allocation en mode noyau.

Frames

Spécifie le nombre total d’images en attente autorisées. Zéro indique que le filtre n’a aucune exigence pour ce membre.

FrameSize

Spécifie la taille totale de l’image, y compris le préfixe et le postfix. Zéro indique que le filtre n’a aucune exigence pour ce membre.

FileAlignment

Valeur de type ULONG qui décrit l’alignement d’octets à utiliser lors de l’allocation d’images. Le tableau suivant décrit plusieurs valeurs d’alignement possibles.

Valeur Description
FILE_BYTE_ALIGNMENT Alignement de 1 octet
FILE_WORD_ALIGNMENT Alignement de 2 octets
FILE_LONG_ALIGNMENT Alignement de 4 octets
FILE_32_BYTE_ALIGNMENT Alignement de 32 octets
FILE_64_BYTE_ALIGNMENT Alignement de 64 octets

FramePitch

Reserved

Réservé pour le système. Définit la valeur zéro.

Remarques

Utilisez KSALLOCATOR_FRAMING pour envoyer une demande de création d’allocator à un handle d’un récepteur à l’aide de IRP_MJ_CREATE.

Lorsque vous spécifiez une valeur pour le membre FileAlignment , le plus petit alignement d’allocation est de 1 octet (FILE_BYTE_ALIGNMENT). Les logiciels qui fonctionnent comme une allocation doivent prendre en charge l’alignement sur 4 octets (FILE_LONG_ALIGNMENT), si possible.

Configuration requise

Condition requise Valeur
En-tête ks.h (inclure Ks.h)

Voir aussi

KsCreateAllocator