IRP_MJ_PREPARE_MDL_WRITE联盟的FLT_PARAMETERS
当操作的FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段IRP_MJ_PREPARE_MDL_WRITE时,使用以下联合组件。
语法
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
ULONG POINTER_ALIGNMENT Length;
ULONG POINTER_ALIGNMENT Key;
PMDL *MdlChain;
} PrepareMdlWrite;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成员
PrepareMdlWrite:包含以下成员的结构。
FileOffset:缓存文件中的起始字节。
Length:要写入缓存文件的数据的长度(以字节为单位)。
键:与目标文件上的字节范围锁关联的键值。 如果要写入的区域重叠或是文件中独占锁定范围的子范围,则此参数必须是该独占锁的键。 独占锁必须由调用线程的父进程持有;否则,将忽略此参数。
MdlChain:指向一个变量的指针,该变量接收指向一个或多个内存描述符链的指针,其中列出了描述包含要写入的数据的页面的 MDL) (MDL。
注解
IRP_MJ_PREPARE_MDL_WRITE 操作的FLT_PARAMETERS结构包含由回调数据 (FLT_CALLBACK_DATA) 结构表示的快速 I/O PrepareMdlWrite 操作的参数。 它包含在FLT_IO_PARAMETER_BLOCK结构中。
如果快速 I/O IRP_MJ_PREPARE_MDL_WRITE请求失败,则 I/O 的颁发者将确定如何重新发出请求。 微筛选器可能并不总是获取基于 IRP 的IRP_MJ_MDL_WRITE。 例如,IRP 请求可以重新发出为 IRP_MJ_WRITE/IRP_MN_MDL。
IRP_MJ_PREPARE_MDL_WRITE是一种快速 I/O 操作。
要求
要求类型 | 要求 |
---|---|
标头 | Fltkernel.h (包括 Fltkernel.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈