FltOplockBreakToNone-Funktion (fltkernel.h)
Die FltOplockBreakToNone Routine bricht alle opportunistischen Sperren (Oplocks) sofort ohne Rücksicht auf oplock-Taste.
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockBreakToNone(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in, optional] PVOID Context,
[in, optional] PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine,
[in, optional] PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
);
[in] Oplock
Ein undurchsichtiger Oplockzeiger für die Datei. Dieser Zeiger muss durch einen vorherigen Aufruf von FltInitializeOplock-initialisiert worden sein.
[in] CallbackData
Ein Zeiger auf die Rückrufdatenstruktur (FLT_CALLBACK_DATA) für den E/A-Vorgang.
[in, optional] Context
Ein Zeiger zum Aufrufen definierter Kontextinformationen, die an die Rückrufroutinen übergeben werden sollen, auf die die WaitCompletionRoutine und PrePostCallbackDataRoutine Parameter verweisen.
[in, optional] WaitCompletionRoutine
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
(*PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Diese Routine hat die folgenden Parameter:
Ein Zeiger auf die Rückrufdatenstruktur für den E/A-Vorgang.
Ein Kontextinformationspunkt, der im parameter Context an FltOplockBreakToNoneübergeben wurde.
[in, optional] PrePostCallbackDataRoutine
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
(*PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Diese Routine hat die folgenden Parameter:
Ein Zeiger auf die Rückrufdatenstruktur für den E/A-Vorgang.
Ein Kontextinformationspunkt, der im parameter Context an FltOplockBreakToNoneübergeben wurde.
FltOplockBreakToNone gibt einen der folgenden FLT_PREOP_CALLBACK_STATUS Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
FltOplockBreakToNone ein Poolzuordnungsfehler aufgetreten ist, oder ein Aufruf der FsRtlOplockBreakToNoneEx-Funktion hat einen Fehler zurückgegeben. FltOplockBreakToNone legt den Fehlercode im Status- Mitglied der IO_STATUS_BLOCK Struktur des IoStatus Mitglieds fest. Die IO_STATUS_BLOCK Struktur wird im IoStatus- Member der FLT_CALLBACK_DATA Rückrufdatenstruktur angegeben. Der parameter CallbackData verweist auf diesen FLT_CALLBACK_DATA. |
|
Es wurde eine Oplockunterbrechung initiiert, was dazu führte, dass der Filter-Manager den E/A-Vorgang in eine Arbeitswarteschlange einfügte. Der E/A-Vorgang wird durch die Rückrufdaten dargestellt, auf die der CallbackData Parameter verweist. |
|
Die Rückrufdaten, auf die der CallbackData Parameter verweist, wurde nicht mit Stift versehen, und der E/A-Vorgang wurde sofort ausgeführt. |
Weitere Informationen zu opportunistischen Sperren finden Sie in der Microsoft Windows SDK-Dokumentation.
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Die FltOplockBreakToNone-Routine ist ab Windows 7 verfügbar. |
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL- | Fltmgr.sys |
IRQL- | <= APC_LEVEL |