KSALLOCATOR_FRAMING结构 (ks.h)
KSALLOCATOR_FRAMING结构用于查询帧要求并提交分配器创建请求。
语法
typedef struct {
union {
ULONG OptionsFlags;
ULONG RequirementsFlags;
};
#if ...
POOL_TYPE PoolType;
#else
ULONG PoolType;
#endif
ULONG Frames;
ULONG FrameSize;
union {
ULONG FileAlignment;
LONG FramePitch;
};
ULONG Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;
成员
OptionsFlags
指定在为连接点创建分配器期间指定的分配器选项标志。 OptionsFlags 成员可以包含以下值之一。
OptionsFlags | 描述 |
---|---|
KSALLOCATOR_OPTIONF_COMPATIBLE | 指示所创建的分配器的框架选项与下游分配器兼容。 为复制缓冲区分配就地修饰符时,通常指定此选项。 如果不需要筛选器来修改给定帧,则它可以将帧提交到下游筛选器,而无需在指定此选项时从下游分配器分配其他帧。 |
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY | 指示系统内存应用于分配。 指定后,分配器必须根据 PoolType 成员中指定的分配池分配内存。 否则,假定接收器提供系统地址映射到设备上的 RAM 或其他形式的存储。 |
RequirementsFlags
一个 ULONG 类型的值,用于描述此连接点的查询作分配器要求。 RequirementsFlags 成员可以包含以下值。
标志值 | 描述 |
---|---|
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER | 指示连接点可以执行就地修改。 |
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY | 指示连接点需要系统内存进行分配。 如果未设置此选项,则假定接收器提供系统地址空间映射到设备上的 RAM 或其他形式的存储。 |
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY | 指示连接点要求下游筛选器维护指定帧的数据完整性。 |
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE | 指示连接点要求它分配发送的任何帧。 |
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY | 指示“要求”标志只是首选项,并且连接点能够分配不符合这些规范的帧。 |
PoolType
POOL_TYPE 类型的结构,指定内核模式分配池类型。
Frames
指定允许的未完成帧总数。 零表示筛选器对此成员没有要求。
FrameSize
指定框架的总大小,包括前缀和后缀。 零表示筛选器对此成员没有要求。
FileAlignment
ULONG 类型的值,描述分配帧时要使用的字节对齐方式。 下表描述了几个可能的对齐值。
价值 | 描述 |
---|---|
FILE_BYTE_ALIGNMENT | 1 字节对齐 |
FILE_WORD_ALIGNMENT | 2 字节对齐 |
FILE_LONG_ALIGNMENT | 4 字节对齐 |
FILE_32_BYTE_ALIGNMENT | 32 字节对齐 |
FILE_64_BYTE_ALIGNMENT | 64 字节对齐 |
FramePitch
Reserved
保留供系统使用。 设置为零。
言论
使用KSALLOCATOR_FRAMING通过IRP_MJ_CREATE将分配器创建请求提交到接收器的句柄。
为 FileAlignment 成员指定值时,最小分配对齐方式为 1 字节(FILE_BYTE_ALIGNMENT)。 如果可能,充当分配的软件应支持 4 字节对齐(FILE_LONG_ALIGNMENT)。
要求
要求 | 价值 |
---|---|
标头 | ks.h (包括 Ks.h) |