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

指定用于缓冲区和数据帧的内存类型。 此成员与 KSALLOCATOR_FRAMING 结构中的 PoolType 成员之间存在部分对应关系。 这两个成员的不同之处在于 PoolType 仅允许分页池或非分页池。 MemoryType 可以包含下表中列出的任何值。

说明
KSMEMORY_TYPE_WILDCARD / KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE 指示内存分配可以是任何类型的内存。
KSMEMORY_TYPE_SYSTEM 指示内存分配必须是系统内存。
KSMEMORY_TYPE_USER 指示内存分配必须是用户模式内存。
KSMEMORY_TYPE_KERNEL_PAGED 指示内存分配必须是内核分页内存。 这对应于设置为 PagedPool的 KSALLOCATOR_FRAMING 结构的 PoolType 成员,此结构的 RequirementsFlags 成员设置为 SYSTEM_MEMORY。
KSMEMORY_TYPE_KERNEL_NONPAGED 指示内存分配必须是内核非分页内存。 这对应于设置为 NonPagedPool的 KSALLOCATOR_FRAMING 结构的 PoolType 成员,此结构的 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

类似于 KSALLOCATOR_FRAMING 结构中的 OptionsFlagsRequirementsFlags 联合,添加了可添加对管道的支持的标志。

Frames

指定允许的未完成帧总数。 对应于 KSALLOCATOR_FRAMING 结构的 Frames 成员。

FileAlignment

帧对齐的要求。 对应于 KSALLOCATOR_FRAMING 结构的 FileAlignment 成员。

FramePitch

定义 LONG 成员 FramePitch

MemoryTypeWeight

ULONG 类型的值,指定此内存类型的引脚宽度权重。

PhysicalRange

KS_FRAMING_RANGE 类型的结构,用于指定帧大小的物理限制。

FramingRange

KS_FRAMING_RANGE_WEIGHTED 类型的结构,用于指定帧大小的最佳范围。

注解

不要将KSALLOCATOR_FLAG_CAN_ALLOCATE设置为指示内存寻址功能。 筛选器可能能够通过引用此总线上的内存地址来访问特定于设备的内存,但不支持分配此特定于设备的内存的协议。

每个 KSALLOCATOR_FRAMING_EX 实例都包含一个或多个帧项。

要求

要求
Header ks.h (包括 Ks.h)

另请参阅

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED