FSCTL_OPLOCK_BREAK_NOTIFY-Steuerungscode
Der FSCTL_OPLOCK_BREAK_NOTIFY-Steuerungscode ermöglicht es der aufrufenden Anwendung, auf den Abschluss eines Oplock-Umbruchs (Opportunistic Lock) zu warten.
Dieser Vorgang ist nur für eine Oplockunterbrechung nützlich, die bereits initiiert wurde, als das Handle des Aufrufers geöffnet wurde. Das Handle muss mit FILE_COMPLETE_IF_OPLOCKED geöffnet worden sein. Dieser Vorgang ist bedeutungslos, wenn derzeit ein Oplock gehalten wird und die Oplockunterbrechung nicht gestartet wurde.
Um diesen Steuerelementcode zu verarbeiten, ruft ein Minifilter FltOplockFsctrl mit den folgenden Parametern auf. Ein Dateisystem- oder Legacyfiltertreiber ruft FsRtlOplockFsctrl auf.
Weitere Informationen zu opportunistischen Sperren und zum FSCTL_OPLOCK_BREAK_NOTIFY-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_OPLOCK_BREAK_NOTIFY sein.
Irp: Nur FsRtlOplockFsctrl . IRP für eine IRP_MJ_FILE_SYSTEM_CONTROL FSCTL-Anforderung. Der FsControlCode-Parameter für den Vorgang muss FSCTL_OPLOCK_BREAK_NOTIFY sein.
OpenCount: Wird bei diesem Vorgang nicht verwendet; auf 0 (null) festgelegt.
Statusblock
FltOplockFsctrl gibt FLT_PREOP_PENDING zurück, wenn der Oplock-Umbruch im Gange ist, und der IRP wird abgeschlossen, wenn der Oplock-Umbruch abgeschlossen ist. (In diesem Fall kann das IRP schließlich mit STATUS_SUCCESS oder STATUS_CANCELLED abgeschlossen werden.) Andernfalls gibt FltOplockFsctrl FLT_PREOP_COMPLETE zurück.
FsRtlOplockFsctrl gibt einen der folgenden NTSTATUS-Werte für diesen Vorgang zurück:
Code | Bedeutung |
---|---|
STATUS_SUCCESS | Dieser Ziehpunkt hat keinen Oplock gehalten, oder es wird ein Oplock gehalten, und die Oplock-Unterbrechung wurde nicht gestartet. |
STATUS_INVALID_OPLOCK_PROTOCOL | Der IRP wurde abgebrochen, bevor der FSCTL_OPLOCK_BREAK_NOTIFY Vorgang abgeschlossen wurde. |
STATUS_PENDING | Die Oplock-Unterbrechung ist im Gange. Die IRP wird abgeschlossen, wenn die Oplockunterbrechung abgeschlossen ist. Das IRP kann schließlich mit STATUS_SUCCESS oder STATUS_CANCELLED abgeschlossen werden. Dies ist ein Erfolgscode. |
Anforderungen
Anforderungstyp | Anforderung |
---|---|
Header | Ntifs.h (schließen Sie Ntifs.h oder Fltkernel.h ein) |
Weitere Informationen
FLT_PARAMETERS für IRP_MJ_FILE_SYSTEM_CONTROL
FSCTL_OPBATCH_ACK_CLOSE_PENDING