Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер мини-фильтра может зарегистрировать подпрограмму типа 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, которую драйвер минифильтра передает в качестве параметра регистрации параметра FltRegisterFilter.
Диспетчер фильтров вызывает эту подпрограмму, чтобы уведомить драйвер минифильтра о состоянии транзакции, в которую включен драйвер минифильтра.
Если драйвер минифильтра возвращает STATUS_PENDING из этой процедуры обратного вызова, он должен в конечном итоге вызвать одну из следующих подпрограмм, чтобы указать, что он завершил обработку уведомления:
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Подпрограмма PFLT_TRANSACTION_NOTIFICATION_CALLBACK доступна в Windows Vista и более поздних версиях. |
| целевая платформа | Настольный |
| заголовка | fltkernel.h (include Fltkernel.h) |
| IRQL | PASSIVE_LEVEL |