当作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) |