Partager via


structure KS_FRAMING_ITEM (ks.h)

La structure KS_FRAMING_ITEM est utilisée pour déclarer les exigences d’allocator 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 dans ce 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 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 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 mémoire non paginé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 qui accède à la mémoire physique spécifiée par MemoryType. Utilisez ce champ pour déterminer un type de mémoire compatible basé sur le 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 pouvez avoir l’une des valeurs répertoriées dans le tableau suivant.

Type Description
GUID_BUS_TYPE_PCI Bus d’interconnexion de composant périphérique.
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 d’images. Doit être défini sur KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE.

BusFlags

Non utilisé.

Flags

Similaire à l'OptionsFlags et RequirementsFlags union 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 Frames membre de la structure KSALLOCATOR_FRAMING.

FileAlignment

Condition requise pour l’alignement des images. 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 large de la broche 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 fonctionnalité d’adressage de mémoire. Un filtre peut être en mesure d’accéder à la mémoire spécifique à l’appareil sur un bus spécifique à l’appareil en référençant l’adresse mémoire sur ce bus, et ne prend pas encore en charge le protocole pour allouer cette mémoire spécifique à l’appareil.

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

Exigences

Exigence Valeur
d’en-tête ks.h (include Ks.h)

Voir aussi

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED