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结构。

为已由 FsRtlInitializeFileLockFltAllocateFileLock 初始化的FILE_LOCK结构调用 FsRtlInitializeFileLock 是一个编程错误,除非该结构已通过对 FsRtlUninitializeFileLock 的后续调用取消初始化。

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

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

微筛选器必须调用 FltInitializeFileLock ,而不是 FsRtlInitializeFileLock

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport)

另请参阅

FILE_LOCK

FltInitializeFileLock

FltAllocateFileLock

FsRtlAreThereCurrentFileLocks

FsRtlFastLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock

IRP_MJ_LOCK_CONTROL

IoCompleteRequest

PCOMPLETE_LOCK_IRP_ROUTINE

PUNLOCK_ROUTINE