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

См. также раздел

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED