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 |
---|---|
|
Die Rückgabe dieses status Werts gibt an, dass der Minifiltertreiber mit der Transaktion abgeschlossen ist. Dies ist ein Erfolgscode. |
|
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:
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 |