Функция FsRtlInitializeFileLock (ntifs.h)
Подпрограмма FsRtlInitializeFileLock
Синтаксис
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.
Возвращаемое значение
Никакой
Замечания
FsRtlInitializeFileLock инициализирует неинициализированную структуру FILE_LOCK.
Это ошибка программирования для вызова FsRtlInitializeFileLock для структуры FILE_LOCK, которая уже инициализирована FsRtlInitializeFileLock или FltAllocateFileLock, если структура не была инициализирована последующим вызовом FsRtlUninitializeFileLock.
После инициализации структура FILE_LOCK может использоваться для блокировки диапазона байтов в файле путем вызова FsRtlProcessFileLock илиFsRtlFastLock. FsRtlProcessFileLock обрабатывает блокировки irps. FsRtlFastLock выполняет блокировку без IRP.
Если структура FILE_LOCK больше не нужна, ее можно неинициализировать, вызвав FsRtlUninitializeFileLock. Затем неинициализированную структуру FILE_LOCK можно инициализировать для повторного использования путем вызова FsRtlInitializeFileLock.
Минифильтры должны вызывать FltInitializeFileLock вместо FsRtlInitializeFileLock.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
правил соответствия DDI |
HwStorPortProhibitedDIs(storport) |