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

指向完成 IRP_MJ_LOCK_CONTROL 请求时要调用的 PCOMPLETE_LOCK_IRP_ROUTINE类型回调例程的指针。 此参数是可选的,可以是 NULL。

[in, optional] UnlockRoutine

指向在解锁字节范围时要调用的 PUNLOCK_ROUTINE类型回调例程的指针。 此参数是可选的,可以是 NULL。

返回值

没有

言论

FsRtlInitializeFileLock 初始化未初始化FILE_LOCK结构。

对于已由 FsRtlInitializeFile Lock 初始化的 FILE_LOCK 结构,调用 FsRtlInitializeFileLock 是编程错误 除非随后调用 FsRtlUninitializeFileLock,否则 FltAllocateFileLock,否则该结构尚未初始化。

初始化后,FILE_LOCK结构可以通过调用 FsRtlProcessFileLockFsRtlFastLock来锁定文件中的字节范围。 FsRtlProcessFileLock 进程锁定 IRP。 FsRtlFastLock 执行非 IRP 锁定。

不再需要 FILE_LOCK 结构时,可以通过调用 FsRtlUninitializeFileLock来取消初始化它。 然后,可以通过调用 FsRtlInitializeFileLock来初始化未初始化FILE_LOCK结构以重复使用。

微型筛选器必须调用 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