IRP_MJ_NETWORK_QUERY_OPEN 联合的 FLT_PARAMETERS
当针对操作的 FLT_IO_PARAMETER_BLOCK 结构的 MajorFunction 字段为 IRP_MJ_NETWORK_QUERY_OPEN 时,将使用以下联合组件。
语法
typedef union _FLT_PARAMETERS {
... ;
struct {
PIRP Irp;
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation;
} NetworkQueryOpen;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成员
NetworkQueryOpen:包含以下成员的结构。
Irp:指向一个表示此打开操作的创建 IRP 的指针。 此 IRP 将由文件系统用于常见但实际上未完成的打开/创建代码。
NetworkInformation:指向 FILE_NETWORK_OPEN_INFORMATION 结构化缓冲区的指针,用于接收有关该文件的请求信息。
注解
IRP_MJ_NETWORK_QUERY_OPEN 操作的 FLT_PARAMETERS 结构,其中包含由 (FLT_CALLBACK_DATA) 结构表示的 NetworkQueryOpen 操作的参数。 FLT_PARAMETERS 结构包含在 FLT_IO_PARAMETER_BLOCK 结构中。
注意
与 IRP_MJ_NETWORK_QUERY_OPEN 关联的文件对象是基于堆栈的对象。 为 NetworkQueryOpen 回调注册的筛选器不得引用此对象。 也就是说,不要在此基于堆栈的文件对象上调用 ObReferenceObject 或 ObDereferenceObject,也不要保存指向该对象的指针。
IRP_MJ_NETWORK_QUERY_OPEN 是快速 I/O 操作。 它等效于 FastIoQueryOpen(而不是 FastIoQueryNetworkOpenInfo)操作。 筛选器可以使用 FLT_PREOP_DISALLOW_FASTIO 拒绝其操作前回调中的操作。 它无法拒绝其操作后回调中的操作,因为文件系统已完成该操作,并且存在数据。
要求
要求类型 | 要求 |
---|---|
标头 | Fltkernel.h(包括 Fltkernel.h) |