Поделиться через


структура 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)

См. также

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED