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) |