Функция FsRtlInitializeFileLock (ntifs.h)

Подпрограмма FsRtlInitializeFileLock инициализирует структуру FILE_LOCK.

Синтаксис

void FsRtlInitializeFileLock(
  [in]           PFILE_LOCK                 FileLock,
  [in, optional] PCOMPLETE_LOCK_IRP_ROUTINE CompleteLockIrpRoutine,
  [in, optional] PUNLOCK_ROUTINE            UnlockRoutine
);

Параметры

[in] FileLock

Указатель на неинициализированную структуру FILE_LOCK .

[in, optional] CompleteLockIrpRoutine

Указатель на PCOMPLETE_LOCK_IRP_ROUTINE типизированной процедуры обратного вызова, вызываемой при выполнении запроса IRP_MJ_LOCK_CONTROL . Этот параметр является необязательным и может иметь значение NULL.

[in, optional] UnlockRoutine

Указатель на PUNLOCK_ROUTINE типизированной процедуры обратного вызова, вызываемой при разблокировке диапазона байтов. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

None

Remarks

FsRtlInitializeFileLock инициализирует неинициализированную структуру FILE_LOCK.

Вызов FsRtlInitializeFileLock для структуры FILE_LOCK, уже инициализированной FsRtlInitializeFileLock или FltAllocateFileLock, является ошибкой программирования, если только структура не была инициализирована последующим вызовом FsRtlUninitializeFileLock.

После инициализации структуру FILE_LOCK можно использовать для блокировки диапазона байтов в файле путем вызова FsRtlProcessFileLock илиFsRtlFastLock. FsRtlProcessFileLock обрабатывает блокировку irp. FsRtlFastLock выполняет блокировку без IRP.

Если структура FILE_LOCK больше не нужна, ее можно не инициализировать, вызвав FsRtlUninitializeFileLock. Затем неинициализированную структуру FILE_LOCK можно инициализировать для повторного использования, вызвав FsRtlInitializeFileLock.

Минифильтры должны вызывать FltInitializeFileLock вместо FsRtlInitializeFileLock.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport)

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

FILE_LOCK

FltInitializeFileLock

FltAllocateFileLock

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE