Функция FltAllocateFileLock (fltkernel.h)
Подпрограмма FltAllocateFileLock выделяет и инициализирует новую структуру FILE_LOCK .
Синтаксис
PFILE_LOCK FLTAPI FltAllocateFileLock(
[in, optional] PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE CompleteLockCallbackDataRoutine,
[in, optional] PUNLOCK_ROUTINE UnlockRoutine
);
Параметры
[in, optional] CompleteLockCallbackDataRoutine
Указатель на PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE типизированной подпрограммы обратного вызова, вызываемой при выполнении запроса IRP_MJ_LOCK_CONTROL . Этот параметр является необязательным и может иметь значение NULL.
[in, optional] UnlockRoutine
Указатель на PUNLOCK_ROUTINE типизированной процедуры обратного вызова, вызываемой при разблокировке диапазона байтов. Этот параметр является необязательным и может иметь значение NULL.
Возвращаемое значение
FltAllocateFileLock возвращает указатель на только что выделенную структуру FILE_LOCK .
Комментарии
FltAllocateFileLock выделяет новую структуру FILE_LOCK из выгружаемого пула и инициализирует ее.
Возвращаемую структуру FILE_LOCK можно использовать для блокировки диапазона байтов в файле путем вызова FltProcessFileLock.
Если структура FILE_LOCK больше не нужна, ее можно не инициализировать, вызвав FltUninitializeFileLock. Затем неинициализированную структуру FILE_LOCK можно инициализировать для повторного использования, вызвав FltInitializeFileLock.
Чтобы освободить инициализированную структуру FILE_LOCK , вызовите FltFreeFileLock.
Если параметр CallbackData , передаваемый в FltProcessFileLock , представляет быструю операцию ввода-вывода, обратный вызов, указанный в CompleteLockCallbackDataRoutine , не вызывается. Подпрограмма обратного вызова будет вызываться только в том случае, если операция ввода-вывода в CallbackData является IRP, а CompleteLockCallbackDataRoutine не имеет значения NULL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2) |
Минимальная версия сервера | Windows Server 2003 с пакетом обновления 1 (SP1) |
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |