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 |
---|---|
|
Der Aufrufer wird bereits in der Transaktion aufgelistet. Dies ist ein Fehlercode. |
|
Die im Instance Parameter angegebene Instanz wird heruntergerissen. Dies ist ein Fehlercode. |
|
FltEnlistInTransaction ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode. |
|
Der Aufrufer hat keine TransactionNotificationCallback Routine registriert. Dies ist ein Fehlercode. |
|
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 |