FltCommitFinalizeComplete-Funktion (fltkernel.h)
Die FltCommitFinalizeComplete-Routine bestätigt eine TRANSACTION_NOTIFY_COMMIT_FINALIZE Benachrichtigung.
Syntax
NTSTATUS FLTAPI FltCommitFinalizeComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parameter
[in] Instance
Undurchsichtiger Zeiger auf eine instance eines Minifiltertreibers. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[in] Transaction
Undurchsichtiger Zeiger auf die Transaktion, in der der Minifiltertreiber derzeit eingetragen ist. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[in, optional] TransactionContext
Zeiger auf den Kontext des Minifiltertreibers für die Transaktion. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
FltCommitFinalizeComplete gibt STATUS_SUCCESS oder einen geeigneten 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_COMMIT_FINALIZE Benachrichtigung erhalten, wenn die Transaktion vollständig committet wird (d. a. wenn alle der Transaktion zugeordneten Ressourcen-Manager , z. B. TxF, einen Commit ausgeführt haben). Für einen Antivirus-Minifiltertreiber, der Überprüfungen außerhalb von Transaktionen ausführt, können Sie diesen Benachrichtigungswert verwenden, um zu bestimmen, wann der Treiber mit dem Überprüfen von Dateien beginnen soll.
Um die TRANSACTION_NOTIFY_COMMIT_FINALIZE 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 FltCommitFinalizeComplete nicht auf.)
- Die TransactionNotificationCallback-Routine des Minifiltertreibers sendet alle erforderlichen Verarbeitungen an einen Workerthread und gibt STATUS_PENDING zurück. Nachdem die Verarbeitung asynchron ausgeführt wurde, muss die Workerthreadroutine des Minifiltertreibers FltCommitFinalizeComplete aufrufen, um anzugeben, dass diese Verarbeitung abgeschlossen wurde. Wenn die Workerthreadroutine des Minifiltertreibers FltCommitFinalizeComplete nicht aufruft, werden bestimmte Systemressourcen kompromittiert.
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.
Weitere Informationen finden Sie unter Transaktionsbenachrichtigungen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista Service Pack 1 (SP1) und höher. |
Zielplattform | Universell |
Header | fltkernel.h (fltkernel.h einschließen) |
Bibliothek | Fltmgr.lib |
IRQL | <= APC_LEVEL |