FsRtlOplockBreakToNoneEx-Funktion (ntifs.h)
Die FsRtlOplockBreakToNoneEx-Routine unterbricht alle opportunistischen Sperren (Oplocks) sofort ohne Rücksicht auf einen oplock-Schlüssel.
Syntax
NTSTATUS FsRtlOplockBreakToNoneEx(
[in, out] POPLOCK Oplock,
[in] PIRP Irp,
[in] ULONG Flags,
[in, optional] PVOID Context,
[in, optional] POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
[in, optional] POPLOCK_FS_PREPOST_IRP PostIrpRoutine
);
Parameter
[in, out] Oplock
Ein undurchsichtiger Oplock-Zeiger für die Datei. Dieser Zeiger muss durch einen vorherigen Aufruf von FsRtlInitializeOplock initialisiert worden sein.
[in] Irp
Ein Zeiger auf den IRP für den E/A-Vorgang.
[in] Flags
Eine Bitmaske für den zugeordneten Datei-E/A-Vorgang. Ein Dateisystem oder Filtertreiber legt Bits fest, um das Verhalten von FsRtlOplockBreakToNoneEx anzugeben. Der Flags-Parameter verfügt über die folgenden Optionen:
OPLOCK_FLAG_COMPLETE_IF_OPLOCKED (0x00000001)
Gibt an, dass ein Oplock-Umbruch fortgesetzt werden kann, ohne den Vorgang zu blockieren oder ausstehen zu lassen, der den Oplock-Umbruch verursacht hat. In der Regel wird dieses Flag nur verwendet, wenn das IRP, auf das der Irp-Parameter verweist, einen IRP_MJ_CREATE Vorgang deklariert.
[in, optional] Context
Ein Zeiger auf vom Aufrufer definierte Kontextinformationen, die an die Rückrufroutine übergeben werden sollen, auf die die CompletionRoutine - und PostIrpRoutine-Parameter verweisen.
[in, optional] CompletionRoutine
Ein Zeiger auf eine vom Anrufer bereitgestellte Rückrufroutine. Wenn ein Oplock-Umbruch ausgeführt wird, wird diese Routine aufgerufen, wenn die Unterbrechung abgeschlossen ist. Dieser Parameter ist optional und kann NULL sein. Wenn es NULL ist, wird der Aufrufer in einen Wartezustand versetzt, bis die Oplock-Umbruch abgeschlossen ist.
Diese Routine wird wie folgt deklariert:
typedef VOID
(*POPLOCK_WAIT_COMPLETE_ROUTINE) (
IN PVOID Context,
IN PIRP Irp
);
Diese Routine hat die folgenden Parameter:
Kontext
Ein Kontextinformationszeiger, der im Context-Parameter an FsRtlOplockBreakToNoneEx übergeben wurde.
Irp
Ein Zeiger auf den IRP für den E/A-Vorgang.
[in, optional] PostIrpRoutine
Ein Zeiger auf eine vom Anrufer bereitgestellte Rückrufroutine, die aufgerufen werden soll, wenn der E/A-Vorgang geschrieben werden soll. Die Routine wird aufgerufen, bevor das oplock-Paket den IRP aufgibt. Dieser Parameter ist optional und kann NULL sein.
Diese Routine wird wie folgt deklariert:
typedef VOID
(*POPLOCK_FS_PREPOST_IRP) (
IN PVOID Context,
IN PIRP Irp
);
Kontext
Ein Kontextinformationszeiger, der im Context-Parameter an FsRtlOplockBreakToNoneEx übergeben wurde.
Irp
Ein Zeiger auf den IRP für den E/A-Vorgang.
Rückgabewert
FsRtlOplockBreakToNoneEx gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Code zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die IRP wurde abgebrochen. STATUS_CANCELLED ist ein Fehlercode. |
|
Ein Oplock-Break ist im Gange. Daher wurde die IRP geschrieben. STATUS_PENDING ist ein Erfolgscode. |
|
Ein opportunistischer Sperrbruch (Oplock) ist im Gange. STATUS_OPLOCK_BREAK_IN_PROGRESS ist ein Erfolgscode, den FsRtlOplockBreakToNoneEx zurückgibt, wenn der Aufrufer im Flags-Parameter OPLOCK_FLAG_COMPLETE_IF_OPLOCKED festgelegt hat und ein Oplock unterbrochen werden muss. |
Hinweise
Weitere Informationen zu opportunistischen Sperren finden Sie in der Microsoft Windows SDK-Dokumentation.
Minifilter sollten FltOplockBreakToNoneEx anstelle von FsRtlOplockBreakToNoneEx aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Die FsRtlOplockBreakToNoneEx-Routine ist ab Windows 7 verfügbar. |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für