структура 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 | Указывает, что выделение памяти должно быть выстраиваемой памятью ядра. Это соответствует элементу PoolTypeструктуры KSALLOCATOR_FRAMING , заданному как PagedPool , а элементу 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
Задает общее количество допустимых необработанных кадров. Соответствует элементу 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 (включая Ks.h) |