Функция 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

См. также раздел

FILE_LOCK

FltCheckLockForReadAccess

FltCheckLockForWriteAccess

FltFreeFileLock

FltInitializeFileLock

FltProcessFileLock

FltUninitializeFileLock

FsRtlAllocateFileLock

IRP_MJ_LOCK_CONTROL

PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

PUNLOCK_ROUTINE