Функция FltReuseCallbackData (fltkernel.h)
Программа FltReuseCallbackData повторно инициализирует структуру данных обратного вызова, чтобы ее можно было повторно использовать.
Синтаксис
VOID FLTAPI FltReuseCallbackData(
[in, out] PFLT_CALLBACK_DATA CallbackData
);
Параметры
[in, out] CallbackData
Указатель на структуру обратного вызова (FLT_CALLBACK_DATA) для повторного использование. Эта структура должна быть выделена предыдущим вызовом FltAllocateCallbackData. Этот параметр является обязательным и не может быть null.
Возвращаемое значение
Никакой
Замечания
FltReuseCallbackData повторно инициализирует структуру данных обратного вызова (FLT_CALLBACK_DATA), чтобы ее можно было использовать в новой операции ввода-вывода. FltReuseCallbackData не изменяет поле TargetInstance или поле TargetFileObject блока параметров структуры данных обратного вызова.
Подпрограмма FltReuseCallbackData освобождает любую цепочку MDL, связанную с предоставленным объектом callbackData CallbackData. Указатель на цепочку MDL, связанную с объектом FLT_CALLBACK_DATA, будет недопустимым после вызова FltReuseCallbackData для этого объекта.
Использование FltReuseCallbackData для повторного использования структуры данных обратного вызова быстрее, чем освобождение структуры и выделение нового.
Драйвер минифильтра должен использовать FltReuseCallbackData только в структуре данных обратного вызова, которая ранее был выделен драйвером минифильтра с FltAllocateCallbackData и используется в вызове FltPerformSynchronousIo или FltPerformAsynchronousIo.
Если структура данных обратного вызова использовалась для асинхронного ввода-вывода, драйвер минифильтра не должен вызывать FltReuseCallbackData до тех пор, пока CallbackRoutine, указанный в вызове FltPerformAsynchronousIo.
В частности, драйвер минифильтра не должен использовать эту подпрограмму для любых структур данных обратного вызова, не выделенных самим драйвером минифильтра.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |