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