Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die FsRtlOplockBreakToNoneEx Routine bricht alle opportunistischen Sperren (Oplocks) sofort ohne Rücksicht auf oplock-Taste auf.
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 Oplockzeiger für die Datei. Dieser Zeiger muss durch einen vorherigen Aufruf von FsRtlInitializeOplockinitialisiert worden sein.
[in] Irp
Ein Zeiger auf das 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 FsRtlOplockBreakToNoneExanzugeben. Der parameter Flags verfügt über die folgenden Optionen:
OPLOCK_FLAG_COMPLETE_IF_OPLOCKED (0x00000001)
Gibt an, dass ein Oplock-Unterbrechung fortgesetzt werden kann, ohne den Vorgang zu blockieren oder ausstehend, der den Oplock-Unterbrechung verursacht hat. In der Regel wird dieses Flag nur verwendet, wenn der IRP, auf den der Irp Parameter verweist, einen IRP_MJ_CREATE Vorgang deklariert.
[in, optional] Context
Ein Zeiger zum Aufrufen definierter Kontextinformationen, die an die Rückrufroutinen übergeben werden sollen, auf die die parameter CompletionRoutine und PostIrpRoutine Parameter verweisen.
[in, optional] CompletionRoutine
Ein Zeiger auf eine vom Aufrufer bereitgestellte Rückrufroutine. Wenn eine Oplockunterbrechung ausgeführt wird, wird diese Routine aufgerufen, wenn die Unterbrechung abgeschlossen ist. Dieser Parameter ist optional und kann NULL-werden. Wenn es NULL-ist, wird der Aufrufer in einen Wartezustand versetzt, bis der 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:
Zusammenhang
Ein Kontextinformationspunkt, der im parameter Context an FsRtlOplockBreakToNoneExübergeben wurde.
Irp
Ein Zeiger auf das IRP für den E/A-Vorgang.
[in, optional] PostIrpRoutine
Ein Zeiger auf eine vom Aufrufer bereitgestellte Rückrufroutine, die aufgerufen werden soll, wenn der E/A-Vorgang eingestiftet werden soll. Die Routine wird aufgerufen, bevor das Oplock-Paket die IRP übergibt. Dieser Parameter ist optional und kann NULL-werden.
Diese Routine wird wie folgt deklariert:
typedef VOID
(*POPLOCK_FS_PREPOST_IRP) (
IN PVOID Context,
IN PIRP Irp
);
Zusammenhang
Ein Kontextinformationspunkt, der im parameter Context an FsRtlOplockBreakToNoneExübergeben wurde.
Irp
Ein Zeiger auf das IRP für den E/A-Vorgang.
Rückgabewert
FsRtlOplockBreakToNoneEx gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Code wie einen der folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
|
Das IRP wurde abgebrochen. STATUS_CANCELLED ist ein Fehlercode. |
|
Eine Oplockpause ist im Gange. Daher wurde die IRP angestiftet. STATUS_PENDING ist ein Erfolgscode. |
|
Eine opportunistische Sperrpause (Oplock) ist im Gange. STATUS_OPLOCK_BREAK_IN_PROGRESS ist ein Erfolgscode, der FsRtlOplockBreakToNoneEx- zurückgibt, wenn der Aufrufer im parameter Flags festgelegt OPLOCK_FLAG_COMPLETE_IF_OPLOCKED und ein Oplock unterbrochen werden muss. |
Bemerkungen
Weitere Informationen zu opportunistischen Sperren finden Sie in der Microsoft Windows SDK-Dokumentation.
Minifilter sollten FltOplockBreakToNoneEx- anstelle von FsRtlOplockBreakToNoneEx-aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Die FsRtlOplockBreakToNoneEx-Routine ist ab Windows 7 verfügbar. |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |