PFLT_TRANSACTION_NOTIFICATION_CALLBACK Rückruffunktion (fltkernel.h)

Ein Minifiltertreiber kann eine Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK als TransactionNotificationCallback-Routine registrieren.

Syntax

PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;

NTSTATUS PfltTransactionNotificationCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] PFLT_CONTEXT TransactionContext,
  [in] ULONG NotificationMask
)
{...}

Parameter

[in] FltObjects

Zeiger auf eine FLT_RELATED_OBJECTS Struktur, die undurchsichtige Zeiger für die Objekte enthält, die sich auf den aktuellen Vorgang beziehen.

[in] TransactionContext

Zeiger auf den Transaktionskontext des Minifiltertreibers.

[in] NotificationMask

Gibt den Typ der Benachrichtigungen an, die der Filter-Manager als einen der folgenden Werte an den Minifiltertreiber sendet.

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

Rückgabewert

Die PFLT_TRANSACTION_NOTIFICATION_CALLBACK Routine gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Rückgabe dieses status Werts gibt an, dass der Minifiltertreiber mit der Transaktion abgeschlossen ist. Dies ist ein Erfolgscode.
STATUS_PENDING
Die Rückgabe dieses status Werts gibt an, dass der Minifiltertreiber noch nicht mit der Transaktion fertig ist. Dies ist ein Erfolgscode.

Hinweise

Wenn sich ein Minifiltertreiber durch Aufrufen von FltRegisterFilter aus seiner DriverEntry-Routine registriert, kann er eine Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK als TransactionNotificationCallback-Routine des Minifilters registrieren.

Um die TransactionNotificationCallback-Routine zu registrieren, speichert der Minifiltertreiber die Adresse einer Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK im TransactionNotificationCallback-Element der FLT_REGISTRATION Struktur, die der Minifiltertreiber als Registrierungsparameter von FltRegisterFilter übergibt.

Der Filter-Manager ruft diese Routine auf, um den Minifiltertreiber über die status einer Transaktion zu informieren, in der der Minifiltertreiber eingetragen ist.

Wenn der Minifiltertreiber STATUS_PENDING aus dieser Rückrufroutine zurückgibt, muss er schließlich eine der folgenden Routinen aufrufen, um anzugeben, dass die Verarbeitung der Benachrichtigung abgeschlossen ist:

FltCommitComplete

FltPrepareComplete

FltPrePrepareComplete

FltRollbackComplete

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Die PFLT_TRANSACTION_NOTIFICATION_CALLBACK Routine ist unter Windows Vista und höher verfügbar.
Zielplattform Desktop
Kopfzeile fltkernel.h (fltkernel.h einschließen)
IRQL PASSIVE_LEVEL

Weitere Informationen

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete