Freigeben über


FltPrepareComplete-Funktion (fltkernel.h)

Die FltPrepareComplete Routine erkennt eine TRANSACTION_NOTIFY_PREPARE Benachrichtigung an.

Syntax

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

FltPrepareComplete gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. folgendes:

Rückgabecode Beschreibung
STATUS_NOT_FOUND
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_PREPARE Benachrichtigung erhalten, wenn die Transaktion die Vorbereitung 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 FltPrepareCompleteauf.
  • 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 FltPrepareComplete- aufrufen, um anzugeben, dass sie diese Verarbeitung abgeschlossen hat. Wenn die Arbeitsroutine des Minifiltertreibers nicht FltPrepareCompleteaufruft, kann der Transaktionsvorbereitungsvorgang 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 Registration Parameter von FltRegisterFilterübergibt.

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- Die FltPrepareComplete-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

Siehe auch

FLT_REGISTRATION

FltAllocateContext-

FltCommitComplete-

FltDeleteContext-

FltDeleteTransactionContext

FltEnlistInTransaction-

FltGetTransactionContext-

FltPrePrepareComplete-

FltRegisterFilter-

FltReleaseContext-

FltRollbackComplete-

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK