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) 。
要求
要求 | 值 |
---|---|
Header | ks.h (包括 Ks.h) |