FSCTL_OPLOCK_BREAK_NOTIFY控件代码

FSCTL_OPLOCK_BREAK_NOTIFY控制代码允许调用应用程序等待完成机会锁 (oplock) 中断。

此操作仅适用于打开调用方句柄时已启动的 oplock 中断。 句柄必须已使用 FILE_COMPLETE_IF_OPLOCKED 打开。 如果当前保留 oplock 且操作锁中断尚未启动,则此操作毫无意义。

若要处理此控制代码,微型筛选器使用以下参数调用 FltOplockFsctrl 。 文件系统或旧筛选器驱动程序调用 FsRtlOplockFsctrl

有关机会锁定和FSCTL_OPLOCK_BREAK_NOTIFY控制代码的详细信息,请参阅Microsoft Windows SDK文档。

参数

Oplock
文件的不透明不透明锁对象指针。

CallbackData
FltOplockFsctrl。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 请求的回调数据 (FLT_CALLBACK_DATA) 结构。 操作的 FsControlCode 参数必须FSCTL_OPLOCK_BREAK_NOTIFY。

Irp
仅 FsRtlOplockFsctrl 。 IRP_MJ_FILE_SYSTEM_CONTROL FSCTL 请求的 IRP。 操作的 FsControlCode 参数必须FSCTL_OPLOCK_BREAK_NOTIFY。

OpenCount
不用于此操作;设置为零。

状态块

如果 oplock 中断正在进行,则 FltOplockFsctrl 将返回FLT_PREOP_PENDING,当 oplock 中断完成时,IRP 将完成。 (在这种情况下,IRP 最终可以使用 STATUS_SUCCESS 或 STATUS_CANCELLED.) 完成;否则, FltOplockFsctrl 返回FLT_PREOP_COMPLETE。

FsRtlOplockFsctrl 为此操作返回以下 NTSTATUS 值之一:

术语 说明

STATUS_SUCCESS

此句柄未保留 oplock,或者保留 oplock,并且操作锁中断尚未启动。

STATUS_INVALID_OPLOCK_PROTOCOL

IRP 在完成FSCTL_OPLOCK_BREAK_NOTIFY操作之前被取消。

STATUS_PENDING

操作锁中断正在进行中。 当 oplock 中断完成时,IRP 将完成。 IRP 最终可以使用STATUS_SUCCESS或STATUS_CANCELLED完成。 这是一个成功代码。

要求

标头

Ntifs.h (包括 Ntifs.h 或 Fltkernel.h)

另请参阅

FLT_CALLBACK_DATA

FLT_PARAMETERS

IRP_MJ_FILE_SYSTEM_CONTROL 的 FLT_PARAMETERS

FltOplockFsctrl

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL