Partager via


KS_FRAMING_ITEM structure (ks.h)

La structure KS_FRAMING_ITEM est utilisée pour déclarer des exigences d’allocateur sur une broche en mode noyau.

Syntaxe

typedef struct {
  GUID                      MemoryType;
  GUID                      BusType;
  ULONG                     MemoryFlags;
  ULONG                     BusFlags;
  ULONG                     Flags;
  ULONG                     Frames;
  union {
    ULONG FileAlignment;
    LONG  FramePitch;
  };
  ULONG                     MemoryTypeWeight;
  KS_FRAMING_RANGE          PhysicalRange;
  KS_FRAMING_RANGE_WEIGHTED FramingRange;
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;

Membres

MemoryType

Spécifie le type de mémoire utilisée pour les mémoires tampons et les trames de données. Il existe une correspondance partielle entre ce membre et le membre PoolType dans la structure KSALLOCATOR_FRAMING . Les deux membres diffèrent par le fait que PoolType autorise uniquement le pool paginé ou non paginé. MemoryType peut avoir l’une des valeurs répertoriées dans le tableau suivant.

Valeur Description
KSMEMORY_TYPE_WILDCARD / KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE Indique que l’allocation de mémoire peut être n’importe quel type de mémoire.
KSMEMORY_TYPE_SYSTEM Indique que l’allocation de mémoire doit être de la mémoire système.
KSMEMORY_TYPE_USER Indique que l’allocation de mémoire doit être en mode utilisateur.
KSMEMORY_TYPE_KERNEL_PAGED Indique que l’allocation de mémoire doit être de la mémoire paginée du noyau. Cela correspond au membre PoolType de la structure KSALLOCATOR_FRAMING définie sur PagedPool et au membre RequirementsFlags de cette structure défini sur SYSTEM_MEMORY.
KSMEMORY_TYPE_KERNEL_NONPAGED Indique que l’allocation de mémoire doit être de la mémoire non pagée du noyau. Cela correspond au membre PoolType de la structure KSALLOCATOR_FRAMING définie sur NonPagedPool et au membre RequirementsFlags de cette structure défini sur SYSTEM_MEMORY.
KSMEMORY_TYPE_DEVICE_UNKNOWN Indique que le type d’allocation de mémoire de l’appareil n’est pas spécifié.

BusType

Spécifie le bus physique accédant à la mémoire physique spécifiée par MemoryType. Utilisez ce champ pour déterminer un type de mémoire compatible en fonction du bus utilisé pour le support de connexion. Cette distinction est cruciale lorsqu’une broche expose différents types de mémoire en fonction du support de connexion. BusType peut avoir l’une des valeurs répertoriées dans le tableau suivant.

Type Description
GUID_BUS_TYPE_PCI Bus d’interconnexion des composants périphériques.
GUID_BUS_TYPE_USB Bus série universel.
GUID_BUS_TYPE_1394 Bus série IEEE 1394.
GUID_BUS_TYPE_AVC Bus de contrôle audio/vidéo.
GUID_61883_CLASS Bus de protocole 61883.

MemoryFlags

Spécifie que le point de connexion est responsable de l’allocation de trames. Doit être défini sur KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE.

BusFlags

Non utilisé.

Flags

Semblable à l’union OptionsFlags et RequirementsFlags dans la structure KSALLOCATOR_FRAMING , avec l’ajout des indicateurs qui ajoutent la prise en charge des canaux.

Frames

Spécifie le nombre total d’images en attente autorisées. Correspond au membre Frames de la structure KSALLOCATOR_FRAMING .

FileAlignment

Configuration requise pour l’alignement du cadre. Correspond au membre FileAlignment de la structure KSALLOCATOR_FRAMING .

FramePitch

Définit le membre LONGFramePitch.

MemoryTypeWeight

Valeur de type ULONG qui spécifie le poids à la largeur des broches de ce type de mémoire.

PhysicalRange

Structure de type KS_FRAMING_RANGE qui spécifie la limite physique des tailles d’images.

FramingRange

Structure de type KS_FRAMING_RANGE_WEIGHTED qui spécifie la plage optimale de tailles d’images.

Remarques

Ne définissez pas KSALLOCATOR_FLAG_CAN_ALLOCATE pour indiquer la capacité d’adressage de la mémoire. Un filtre peut être en mesure d’accéder à la mémoire spécifique de l’appareil sur un bus spécifique à l’appareil en référençant l’adresse mémoire sur ce bus, sans pour autant prendre en charge le protocole permettant d’allouer cette mémoire spécifique à l’appareil.

Chaque instance KSALLOCATOR_FRAMING_EX contient un ou plusieurs éléments de cadrage.

Configuration requise

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

Voir aussi

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED