функция обратного вызова PFLT_TRANSACTION_NOTIFICATION_CALLBACK (fltkernel.h)
Драйвер минифильтра может зарегистрировать подпрограмму типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в качестве подпрограммы TransactionNotificationCallback .
Синтаксис
PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;
NTSTATUS PfltTransactionNotificationCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] PFLT_CONTEXT TransactionContext,
[in] ULONG NotificationMask
)
{...}
Параметры
[in] FltObjects
Указатель на структуру FLT_RELATED_OBJECTS , содержащую непрозрачные указатели для объектов, связанных с текущей операцией.
[in] TransactionContext
Указатель на контекст транзакции драйвера минифильтра.
[in] NotificationMask
Указывает тип уведомлений, отправляемых диспетчером фильтров драйверу минифильтра, в виде одного из следующих значений.
Значение | Значение |
---|---|
TRANSACTION_NOTIFY_COMMIT | Это уведомление отправляется при фиксации транзакции. |
TRANSACTION_NOTIFY_COMMIT_FINALIZE | Для Windows Vista с пакетом обновления 1 (SP1) и более поздних версий это уведомление отправляется, когда транзакция полностью зафиксирована (т. е. когда все связанные с транзакцией диспетчеры ресурсов , например TxF, зафиксированы). |
TRANSACTION_NOTIFY_PREPARE | Это уведомление отправляется, когда транзакция переходит на этап подготовки к фиксации. |
TRANSACTION_NOTIFY_PREPREPARE | Это уведомление отправляется, когда транзакция переходит на этап предварительной подготовки к фиксации. |
TRANSACTION_NOTIFY_ROLLBACK | Это уведомление отправляется при откате или прерывании транзакции. |
Возвращаемое значение
Подпрограмма PFLT_TRANSACTION_NOTIFICATION_CALLBACK возвращает одно из следующих значений NTSTATUS:
Код возврата | Описание |
---|---|
|
Возврат этого значения состояния означает, что драйвер минифильтра завершен с транзакцией. Это код успешного выполнения. |
|
Возврат этого значения состояния означает, что драйвер минифильтра еще не завершил транзакцию. Это код успешного выполнения. |
Комментарии
Когда драйвер минифильтра регистрирует себя путем вызова FltRegisterFilter из своей подпрограммы DriverEntry , он может зарегистрировать подпрограмму типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в качестве подпрограммы TransactionNotificationCallback минифильтра.
Чтобы зарегистрировать подпрограмму TransactionNotificationCallback , драйвер минифильтра сохраняет адрес подпрограммы типа PFLT_TRANSACTION_NOTIFICATION_CALLBACK в элементе TransactionNotificationCallbackструктуры FLT_REGISTRATION , которую драйвер минифильтра передает в качестве параметра Registrationпараметра FltRegisterFilter.
Диспетчер фильтров вызывает эту подпрограмму, чтобы уведомить драйвер минифильтра о состоянии транзакции, в которую включен драйвер минифильтра.
Если драйвер минифильтра возвращает STATUS_PENDING из этой процедуры обратного вызова, он должен в конечном итоге вызвать одну из следующих процедур, чтобы указать, что обработка уведомления завершена:
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Подпрограмма PFLT_TRANSACTION_NOTIFICATION_CALLBACK доступна в Windows Vista и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
IRQL | PASSIVE_LEVEL |