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 | 指示内存分配必须是内核分页内存。 这对应于 PoolTypeKSALLOCATOR_FRAMING 结构的成员设置为 PagedPool,RequirementsFlags 此结构的成员设置为SYSTEM_MEMORY。 |
KSMEMORY_TYPE_KERNEL_NONPAGED | 指示内存分配必须是内核非分页内存。 这对应于设置为 NonPagedPool 的 KSALLOCATOR_FRAMING 结构的 PoolType 成员,以及此结构设置为 SYSTEM_MEMORY 的 RequirementsFlags 成员。 |
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 结构中的 OptionsFlags 和 RequirementsFlags 联合,并添加了添加对管道的支持的标志。
Frames
指定允许的未完成帧总数。 对应于 KSALLOCATOR_FRAMING 结构的 帧 成员。
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 实例都包含一个或多个框架项。
要求
要求 | 价值 |
---|---|
标头 | ks.h (包括 Ks.h) |