IRP_MJ_CREATE
每个内核模式驱动程序都必须处理 DRIVER_DISPATCH 回调函数中的 IRP_MJ_CREATE 请求。
发送时
操作系统发送 IRP_MJ_CREATE 请求,以打开文件对象或设备对象的句柄。 例如,当驱动程序调用 ZwCreateFile 时,操作系统会发送 IRP_MJ_CREATE 请求以执行实际打开操作。
输入参数
Parameters.Create.SecurityContext 成员指向描述请求安全上下文的IO_SECURITY_CONTEXT结构。 Parameters.Create.SecurityContext-DesiredAccess> 成员是一个访问掩码,用于指定调用方请求的访问权限。
Parameters.Create.Options 成员是一个 ULONG 值,用于描述打开句柄时使用的选项。 高 8 位对应于 ZwCreateFile 的 CreateDisposition 参数的值,低 24 位对应于 ZwCreateFile 的 CreateOptions 参数的值。
Parameters.Create.ShareAccess 成员是描述共享访问类型的 USHORT 值。 此值对应于 ZwCreateFile 的 ShareAccess 参数的值。
Parameters.Create.FileAttributes 和 Parameters.Create.EaLength 成员保留供文件系统和文件系统筛选器驱动程序使用。 有关详细信息,请参阅可安装文件系统 ( IFS) 文档中的 IRP_MJ_CREATE 主题。
输出参数
无
Operation
大多数设备和中间驱动程序在 IRP 的 I/O 状态块中设置STATUS_SUCCESS并完成创建请求,但驱动程序可以选择使用其 DRIVER_DISPATCH 回调函数为该句柄的任何后续 I/O 请求保留资源。 例如,系统串行驱动程序映射其分页代码,并为尝试打开设备进行输入和输出的用户模式线程分配处理后续 I/O 请求所需的任何资源。
要求
标头 |
Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h) |