FltPrePrepareComplete-Funktion (fltkernel.h)

Die FltPrePrepareComplete-Routine bestätigt eine TRANSACTION_NOTIFY_PREPREPARE Benachrichtigung.

Syntax

NTSTATUS FLTAPI FltPrePrepareComplete(
  [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

FltPrePrepareComplete gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. den folgenden:

Rückgabecode Beschreibung
STATUS_NOT_FOUND
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_PREPREPARE Benachrichtigung erhalten, wenn die Transaktion in die Vorvorbereitungsphase 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 FltPrePrepareComplete 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 Arbeitsroutine des Minifiltertreibers FltPrePrepareComplete aufrufen, um anzugeben, dass diese Verarbeitung abgeschlossen wurde. Wenn die Arbeitsroutine des Minifiltertreibers FltPrePrepareComplete nicht aufruft, kann der Vorvorbereitungsvorgang der Transaktion nicht vom Kerneltransaktions-Manager abgeschlossen werden.
Um eine TransactionNotificationCallback-Routine zu registrieren, speichert ein Minifiltertreiber die Adresse einer Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK im TransactionNotificationCallback-Member der FLT_REGISTRATION-Struktur , die der Minifiltertreiber als Registrierungsparameter von FltRegisterFilter übergibt.

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) Diese Routine ist unter Windows Vista und höher verfügbar.
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK