Freigeben über


FltEnlistInTransaction-Funktion (fltkernel.h)

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

Syntax

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

Parameter

[in] Instance

Ein undurchsichtiger Instanzzeiger für den Aufrufer. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

[in] Transaction

Ein undurchsichtiger Transaktionszeiger für die Transaktion.

[in] TransactionContext

Ein Zeiger auf den Transaktionskontext des Minifiltertreibers. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

[in] NotificationMask

Gibt den Typ der Benachrichtigungen an, die der Filter-Manager an den Minifiltertreiber senden soll, da mindestens ein wert in der folgenden Tabelle aufgeführt ist. Dieser Parameter ist erforderlich und darf nicht null sein.

Wert Bedeutung
TRANSACTION_NOTIFY_COMMIT Diese Benachrichtigung wird gesendet, wenn die Transaktion zugesichert wird.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Für Windows Vista SP1 und höher wird diese Benachrichtigung gesendet, wenn die Transaktion vollständig zugesichert wird (d. h., wenn alle Ressourcenmanager der Transaktion zugeordnet, z. B. TxF-, zugesichert haben).
TRANSACTION_NOTIFY_PREPARE Diese Benachrichtigung wird gesendet, wenn die Transaktion die Vorbereitung für die Commit-Phase eingegeben hat.
TRANSACTION_NOTIFY_PREPREPARE Diese Benachrichtigung wird gesendet, wenn die Transaktion die Vorvorbereitung für die Commit-Phase eingegeben hat.
TRANSACTION_NOTIFY_ROLLBACK Diese Benachrichtigung wird gesendet, wenn die Transaktion zurückgesetzt 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 geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_FLT_ALREADY_ENLISTED
Der Aufrufer wird bereits in der Transaktion aufgelistet. Dies ist ein Fehlercode.
STATUS_FLT_DELETING_OBJECT
Die im Instance Parameter angegebene Instanz wird heruntergerissen. 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 parameter NotificationMask angegeben. Dies ist ein Fehlercode.

Bemerkungen

Ein Minifiltertreiber ruft FltEnlistInTransaction- auf, um eine Transaktion einzulisten. Vor dem Aufrufen 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 Registration Parameter von FltRegisterFilterübergibt.

Zum Zurücksetzen oder Abbrechen einer Transaktion rufen Sie FltRollbackEnlistmentauf.

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- Diese Routine ist unter Windows Vista und höheren Versionen von Windows verfügbar.
Zielplattform- Universal
Header- fltkernel.h (include Fltkernel.h)
Library FltMgr.lib
DLL- FltMgr.sys
IRQL- <= APC_LEVEL

Siehe auch

FltAllocateContext-

FltCommitComplete-

FltDeleteContext-

FltDeleteTransactionContext

FltGetTransactionContext-

FltPrePrepareComplete-

FltPrepareComplete

FltRegisterFilter-

FltReleaseContext-

FltRollbackComplete-

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK