FltEnlistInTransaction-Funktion (fltkernel.h)

Die FltEnlistInTransaction-Routine führt einen Minifiltertreiber in einer bestimmten Transaktion ein.

Syntax

NTSTATUS FLTAPI FltEnlistInTransaction(
  [in] PFLT_INSTANCE     Instance,
  [in] PKTRANSACTION     Transaction,
  [in] PFLT_CONTEXT      TransactionContext,
  [in] NOTIFICATION_MASK NotificationMask
);

Parameter

[in] Instance

Ein undurchsichtiger instance Zeiger für den Aufrufer. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[in] Transaction

Ein undurchsichtiger Transaktionszeiger für die Transaktion.

[in] TransactionContext

Ein Zeiger auf den Transaktionskontext des Minifiltertreibers. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[in] NotificationMask

Gibt den Typ der Benachrichtigungen an, die der Filter-Manager an den Minifiltertreiber senden soll, als mindestens einen der in der folgenden Tabelle aufgeführten Werte. Dieser Parameter ist erforderlich und darf nicht 0 sein.

Wert Bedeutung
TRANSACTION_NOTIFY_COMMIT Diese Benachrichtigung wird gesendet, wenn die Transaktion committet wird.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Für Windows Vista SP1 und höher wird diese Benachrichtigung gesendet, wenn die Transaktion vollständig gebunden ist (d. a. wenn alle der Transaktion zugeordneten Ressourcenmanager , z. B. TxF, ein Commit ausgeführt haben).
TRANSACTION_NOTIFY_PREPARE Diese Benachrichtigung wird gesendet, wenn die Transaktion in die Vorbereitungsphase für den Commit eingetreten ist.
TRANSACTION_NOTIFY_PREPREPARE Diese Benachrichtigung wird gesendet, wenn die Transaktion in die Vorvorbereitungsphase für den Commit eingetreten ist.
TRANSACTION_NOTIFY_ROLLBACK Diese Benachrichtigung wird gesendet, wenn für die Transaktion ein Rollback ausgeführt oder abgebrochen wird.
FLT_MAX_TRANSACTION_NOTIFICATIONS TRANSACTION_NOTIFY_COMMIT | TRANSACTION_NOTIFY_PREPARE | TRANSACTION_NOTIFY_PREPREPARE | TRANSACTION_NOTIFY_ROLLBACK

Rückgabewert

FltEnlistInTransaction gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_FLT_ALREADY_ENLISTED
Der Aufrufer ist bereits in der Transaktion eingetragen. Dies ist ein Fehlercode.
STATUS_FLT_DELETING_OBJECT
Die im Parameter Instance angegebene instance wird abgerissen. Dies ist ein Fehlercode.
STATUS_INSUFFICIENT_RESOURCES
FltEnlistInTransaction ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Der Aufrufer hat keine TransactionNotificationCallback-Routine registriert. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER_4
Der Aufrufer hat einen ungültigen Wert für den NotificationMask-Parameter angegeben. Dies ist ein Fehlercode.

Hinweise

Ein Minifiltertreiber ruft FltEnlistInTransaction auf, um sich in eine Transaktion ein eintragen zu können. Vor dem Aufrufen von FltEnlistInTransaction muss der Minifiltertreiber eine TransactionNotificationCallback-Routine registriert haben. Andernfalls schlägt der Aufruf von FltEnlistInTransaction fehl.

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.

Um ein Rollback oder einen Abbruch einer Transaktion auszuführen, rufen Sie FltRollbackEnlistment auf.

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öheren Versionen von Windows verfügbar.
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
Bibliothek FltMgr.lib
DLL FltMgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK