FltPrePrepareComplete-Funktion (fltkernel.h)
Die FltPrePrepareComplete Routine erkennt eine TRANSACTION_NOTIFY_PREPREPARE Benachrichtigung an.
Syntax
NTSTATUS FLTAPI FltPrePrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parameter
[in] Instance
Undurchsichtiger Instanzzeiger für den Aufrufer.
[in] Transaction
Undurchsichtiger Transaktionszeiger für die Transaktion.
[in, optional] TransactionContext
Zeigen Sie auf den Transaktionskontext des Minifiltertreibers.
Rückgabewert
FltPrePrepareComplete gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. folgendes:
Rückgabecode | Beschreibung |
---|---|
|
Der Minifiltertreiber hat keinen Kontext für die Transaktion festgelegt. Dies ist ein Fehlercode. |
Bemerkungen
Ein Minifiltertreiber, der in einer Transaktion aufgelistet ist, kann eine TRANSACTION_NOTIFY_PREPREPARE Benachrichtigung erhalten, wenn die Transaktion die Vorvorbereitung für die Commit-Phase eingibt. Um die Benachrichtigung an den Minifiltertreiber zu senden, ruft der Filter-Manager die TransactionNotificationCallback Routine des Minifiltertreibers auf. Der Minifiltertreiber erkennt diese Benachrichtigung auf eine von zwei Arten an:
- Die TransactionNotificationCallback- Routine des Minifiltertreibers führt alle erforderlichen Verarbeitungen durch und gibt STATUS_SUCCESS zurück. In diesem Fall ruft der Minifiltertreiber nicht FltPrePrepareCompleteauf.
- Die TransactionNotificationCallback des Minifiltertreibers Routine stellt alle erforderlichen Verarbeitungen in einen Arbeitsthread bereit und gibt STATUS_PENDING zurück. Nach der asynchronen Verarbeitung muss die Arbeitsroutine des Minifiltertreibers FltPrePrepareComplete- aufrufen, um anzugeben, dass sie diese Verarbeitung abgeschlossen hat. Wenn die Arbeitsroutine des Minifiltertreibers nicht FltPrepareCompleteaufruft, kann der Vorgang vor der Vorbereitung der Transaktion nicht vom Kerneltransaktions-Manager abgeschlossen werden.
Zum Auflisten in einer Transaktion rufen Sie FltEnlistInTransactionauf.
Rufen Sie FltAllocateContextauf, um einen neuen Transaktionskontext zuzuweisen.
Rufen Sie zum Abrufen eines Transaktionskontexts FltGetTransactionContextauf.
Rufen Sie zum Löschen eines Transaktionskontexts FltDeleteTransactionContext oder FltDeleteContext-auf.
Rufen Sie FltSetTransactionContextauf, um einen Transaktionskontext festzulegen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Diese Routine ist unter Windows Vista und höher verfügbar. |
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL- | Fltmgr.sys |
IRQL- | <= APC_LEVEL |