FltPrepareComplete-Funktion (fltkernel.h)
Die FltPrepareComplete-Routine bestätigt eine TRANSACTION_NOTIFY_PREPARE Benachrichtigung.
Syntax
NTSTATUS FLTAPI FltPrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parameter
[in] Instance
Undurchsichtiger instance Zeiger für den Aufrufer.
[in] Transaction
Undurchsichtiger Transaktionszeiger für die Transaktion.
[in, optional] TransactionContext
Zeiger auf den Transaktionskontext des Minifiltertreibers.
Rückgabewert
FltPrepareComplete gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. den folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Der Minifiltertreiber hat keinen Kontext für die Transaktion festgelegt. Dies ist ein Fehlercode. |
Hinweise
Ein Minifiltertreiber, der in einer Transaktion eingetragen ist, kann eine TRANSACTION_NOTIFY_PREPARE Benachrichtigung erhalten, wenn die Transaktion in die Vorbereitungsphase für den Commit eintritt. Um die Benachrichtigung an den Minifiltertreiber zu senden, ruft der Filter-Manager die TransactionNotificationCallback-Routine des Minifiltertreibers auf. Der Minifiltertreiber bestätigt diese Benachrichtigung auf zwei Arten:
- Die TransactionNotificationCallback-Routine des Minifiltertreibers führt alle erforderlichen Verarbeitungsvorgänge durch und gibt STATUS_SUCCESS zurück. In diesem Fall ruft der Minifiltertreiber FltPrepareComplete nicht auf.
- Die TransactionNotificationCallback-Routine des Minifiltertreibers stellt alle erforderlichen Verarbeitungsvorgänge an einen Workerthread und gibt STATUS_PENDING zurück. Nachdem die Verarbeitung asynchron ausgeführt wurde, muss die Arbeitsroutine des Minifiltertreibers FltPrepareComplete aufrufen, um anzugeben, dass diese Verarbeitung abgeschlossen wurde. Wenn die Arbeitsroutine des Minifiltertreibers FltPrepareComplete nicht aufruft, kann der Vorgang zur Transaktionsvorbereitung nicht vom Kerneltransaktions-Manager abgeschlossen werden.
Rufen Sie FltEnlistInTransaction auf, um sich in eine Transaktion ein eintragen zu können.
Um einen neuen Transaktionskontext zuzuordnen, rufen Sie FltAllocateContext auf.
Um einen Transaktionskontext abzurufen, rufen Sie FltGetTransactionContext auf.
Um einen Transaktionskontext zu löschen, rufen Sie FltDeleteTransactionContext oder FltDeleteContext auf.
Um einen Transaktionskontext festzulegen, rufen Sie FltSetTransactionContext auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Die FltPrepareComplete-Routine ist unter Windows Vista und höher verfügbar. |
Zielplattform | Universell |
Header | fltkernel.h (include Fltkernel.h) |
Bibliothek | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |