FSCTL_OPBATCH_ACK_CLOSE_PENDING 控制代码

FSCTL_OPBATCH_ACK_CLOSE_PENDING控制代码会响应 (文件上的) 机会锁定 () oplock 锁定的通知,的机会锁已中断。 客户端应用程序发送此控制代码以指示它会确认 oplock 中断,并即将关闭文件句柄。

对于批处理或筛选器 oplock 中断,调用方必须在发送此控制代码后关闭其文件句柄。 否则,系统将阻止等待文件句柄关闭。

此控制代码不应与 level 1 oplock 一起使用。 尽管如此,对于第1级 oplock 中断,系统会将此控制代码视为完全确认中断,并且不需要调用方关闭文件句柄。

很少使用此控制代码。 当对某个文件的 oplock 中断通知客户端应用程序时,如果该客户端应用程序关闭了该文件的句柄,则系统会将该文件句柄关闭,作为对 oplock 中断的完全确认。 因此,永远不需要发送此控制代码。

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

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

Parameters

机会
文件的不透明 oplock 对象指针。

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

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

OpenCount
不与此操作一起使用;设置为零。

状态块

对于此操作, FltOplockFsctrl始终返回 FLT_PREOP_COMPLETE。

对于此操作, FsRtlOplockFsctrl返回以下 NTSTATUS 值之一:

术语 说明

STATUS_SUCCESS

此句柄持有的 oplock 处于中断过程中。

STATUS_INVALID_OPLOCK_PROTOCOL

此句柄未持有 oplock,或 oplock 中断当前未进行。 这是一个错误代码。

要求

标头

Ntifs (包含 Ntifs 或 Fltkernel)

另请参阅

FLT_CALLBACK_DATA

IRP_MJ_FILE_SYSTEM_CONTROL 的 FLT_PARAMETERS

FltOplockFsctrl

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL