Поделиться через


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

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

Никакой

Замечания

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)

См. также

FILE_LOCK

FltInitializeFileLock

FltAllocateFileLock

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE