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