структура KS_FRAMING_ITEM (ks.h)
Структура KS_FRAMING_ITEM используется для объявления требований распределителя в закреплении режима ядра.
Синтаксис
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;
Члены
MemoryType
Указывает тип памяти, используемой для буферов и кадров данных. Существует частичная связь между этим элементом и элементом PoolType в структуре KSALLOCATOR_FRAMING. Два члена отличаются в том, что PoolType разрешает только страницы или непарагированный пул. MemoryType может иметь любое из значений, перечисленных в следующей таблице.
Ценность | Описание |
---|---|
KSMEMORY_TYPE_WILDCARD / KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE | Указывает, что выделение памяти может быть любым типом памяти. |
KSMEMORY_TYPE_SYSTEM | Указывает, что выделение памяти должно быть системной памятью. |
KSMEMORY_TYPE_USER | Указывает, что выделение памяти должно быть памятью в пользовательском режиме. |
KSMEMORY_TYPE_KERNEL_PAGED | Указывает, что выделение памяти должно быть памяти страниц ядра. Это соответствует элементу пула пула KSALLOCATOR_FRAMINGPagedPool, а RequirementsFlags элементу этой структуры SYSTEM_MEMORY. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Указывает, что выделение памяти должно быть нерасположенной памятью ядра. Это соответствует элементу PoolType структуры KSALLOCATOR_FRAMING значение NonPagedPool и элементу RequirementsFlags этого параметра структуры, равным SYSTEM_MEMORY. |
KSMEMORY_TYPE_DEVICE_UNKNOWN | Указывает, что тип выделения памяти устройства не указан. |
BusType
Указывает физическую шину, доступ к физической памяти, указанной MemoryType. Используйте это поле для определения совместимого типа памяти на основе шины, используемой для среды подключения. Это различие имеет решающее значение, если закрепление предоставляет различные типы памяти на основе среды подключения. BusType может иметь любое из значений, перечисленных в следующей таблице.
Тип | Описание |
---|---|
GUID_BUS_TYPE_PCI | Шина взаимодействия периферийных компонентов. |
GUID_BUS_TYPE_USB | Универсальная последовательная шина. |
GUID_BUS_TYPE_1394 | Последовательная шина IEEE 1394. |
GUID_BUS_TYPE_AVC | Шина управления звуком и видео. |
GUID_61883_CLASS | Шина протокола 61883. |
MemoryFlags
Указывает, что точка подключения отвечает за выделение кадров. Должно быть задано значение KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE.
BusFlags
Не используется.
Flags
Аналогично OptionsFlags и RequirementsFlags объединения в структуре KSALLOCATOR_FRAMING с добавлением флагов, которые добавляют поддержку каналов.
Frames
Указывает общее количество допустимых невыполненных кадров. Соответствует элементу кадров структуры KSALLOCATOR_FRAMING.
FileAlignment
Требование выравнивания кадров. Соответствует элементу FileAlignment структуры KSALLOCATOR_FRAMING.
FramePitch
Определяет элемент LONGFramePitch.
MemoryTypeWeight
Значение типа ULONG, указывающее ширину пин-кода этого типа памяти.
PhysicalRange
Структура типа KS_FRAMING_RANGE, указывающая физическое ограничение размеров кадров.
FramingRange
Структура типа KS_FRAMING_RANGE_WEIGHTED, указывающая оптимальный диапазон размеров кадров.
Замечания
Не устанавливайте KSALLOCATOR_FLAG_CAN_ALLOCATE, чтобы указать возможность адресации памяти. Фильтр может иметь доступ к памяти конкретного устройства через шину, относяющуюся к устройству, ссылаясь на адрес памяти на этой шине и не поддерживая протокол для выделения памяти для конкретного устройства.
Каждый экземпляр KSALLOCATOR_FRAMING_EX содержит один или несколько элементов обрамления.
Требования
Требование | Ценность |
---|---|
заголовка | ks.h (include Ks.h) |