NtUnlockFile 函数 (ntifs.h)

NtUnlockFile 例程解锁文件中的字节范围锁。

语法

__kernel_entry NTSYSCALLAPI NTSTATUS NtUnlockFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock,
  [in]  PLARGE_INTEGER   ByteOffset,
  [in]  PLARGE_INTEGER   Length,
  [in]  ULONG            Key
);

参数

[in] FileHandle

表示要解锁其字节范围的文件的文件对象的句柄。

[out] IoStatusBlock

指向包含最终状态的 IO_STATUS_BLOCK 结构的指针。

[in] ByteOffset

指向变量的指针,该变量指定要解锁的字节范围的起始字节偏移量。

[in] Length

指向一个变量的指针,该变量指定要解锁的字节范围的长度(以字节为单位)。

[in] Key

用于描述相关锁组的调用方分配的值。 此值应设置为零。

返回值

NtUnlockFile 例程返回成功或相应的 NTSTATUS 值STATUS_SUCCESS。 可能的 NTSTATUS 值包括:

返回代码 描述
STATUS_RANGE_NOT_LOCKED 指定的字节范围未锁定。

言论

NtUnlockFile 例程采用由 ByteOffsetLength 参数指定的字节范围。 此范围必须与以前通过对 NtUnlockFile 例程的单个调用锁定的文件中的字节范围相同。 无法通过单个调用 NtUnlockFile解锁以前锁定的两个相邻范围。 也不能解锁以前通过对 NtUnlockFile 例程的单个调用锁定的范围的一部分。

NtUnlockFile 的调用方必须在 IRQL = PASSIVE_LEVEL 和启用了特殊内核 APC 的 **运行。

注意

如果对 NtUnlockFile 函数的调用在内核模式下发生,则应使用名称“ZwUnlockFile”而不是“NtUnlockFile”。

对于内核模式驱动程序的调用,NtXxxZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxxZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程

要求

要求 价值
最低支持的客户端 Windows 7
目标平台 普遍
标头 ntifs.h(包括 Ntifs.h、FltKernel.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(请参阅“备注”部分)
DDI 符合性规则 HwStorPortProhibitedDDI、PowerIrpDDis

另请参阅

使用本机系统服务例程的 Nt 和 Zw 版本

NtLockFile