FSCTL_OPBATCH_ACK_CLOSE_PENDING Steuerungscode

Der FSCTL_OPBATCH_ACK_CLOSE_PENDING-Kontrollcode reagiert auf eine Benachrichtigung, dass eine exklusive (Ebene 1, Batch oder Filter) opportunistische Sperre (Oplock) für eine Datei unterbrochen wurde. Eine Clientanwendung sendet diesen Steuerelementcode, um anzugeben, dass sie den Oplock-Umbruch bestätigt und das Dateihandle geschlossen wird.

Bei einem Batch- oder Filter-Oplock-Umbruch muss der Aufrufer sein Dateihandle schließen, nachdem er diesen Steuerungscode gesendet hat. Andernfalls blockiert das System das Warten auf das Schließen des Dateihandles.

Dieser Steuerelementcode ist nicht für die Verwendung mit Oplocks der Ebene 1 vorgesehen. Dennoch behandelt das System für einen Oplock-Umbruch der Ebene 1 diesen Steuerungscode als vollständige Bestätigung des Umbruchs, und der Aufrufer muss das Dateihandle nicht schließen.

Dieser Steuerelementcode wird selten verwendet. Wenn eine Clientanwendung über einen Oplock-Umbruch für eine Datei benachrichtigt wird und ihr Handle für die Datei geschlossen wird, behandelt das System das Dateihandle close als vollständige Bestätigung des Oplock-Umbruchs. Daher ist es nie erforderlich, diesen Steuerungscode zu senden.

Um diesen Steuerelementcode zu verarbeiten, ruft ein Minifilter FltOplockFsctrl mit den folgenden Parametern auf. Ein Dateisystem oder Legacyfiltertreiber ruft FsRtlOplockFsctrl auf.

Weitere Informationen zum opportunistischen Sperren und zum FSCTL_OPBATCH_ACK_CLOSE_PENDING-Steuerelementcode finden Sie in der Microsoft Windows SDK-Dokumentation.

Parameter

  • Oplock: Undurchsichtiger Oplock-Objektzeiger für die Datei.

  • CallbackData: Nur FltOplockFsctrl . Rückrufdatenstruktur (FLT_CALLBACK_DATA) für eine IRP_MJ_FILE_SYSTEM_CONTROL FSCTL-Anforderung. Der FsControlCode-Parameter für den Vorgang muss FSCTL_OPBATCH_ACK_CLOSE_PENDING sein.

  • Irp: Nur FsRtlOplockFsctrl . IRP für eine IRP_MJ_FILE_SYSTEM_CONTROL FSCTL-Anforderung. Der FsControlCode-Parameter für den Vorgang muss FSCTL_OPBATCH_ACK_CLOSE_PENDING sein.

  • OpenCount: Wird bei diesem Vorgang nicht verwendet; auf 0 festgelegt.

Statusblock

FltOplockFsctrl gibt für diesen Vorgang immer FLT_PREOP_COMPLETE zurück.

FsRtlOplockFsctrl gibt einen der folgenden NTSTATUS-Werte für diesen Vorgang zurück:

Code Bedeutung
STATUS_SUCCESS Der oplock, der von diesem Handle gehalten wurde, wurde gerade unterbrochen.
STATUS_INVALID_OPLOCK_PROTOCOL Dieser Handle hat keinen Oplock gehalten, oder der Oplock-Umbruch wird derzeit nicht ausgeführt. Dies ist ein Fehlercode.

Anforderungen

Anforderungstyp Anforderung
Header Ntifs.h (einschließlich Ntifs.h oder Fltkernel.h)

Weitere Informationen

FLT_CALLBACK_DATA

FLT_PARAMETERS für IRP_MJ_FILE_SYSTEM_CONTROL

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