ZwUnlockFile 函数 (ntifs.h)

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

语法

NTSYSAPI NTSTATUS ZwUnlockFile(
  [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

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

返回值

ZwUnlockFile 例程在成功时返回STATUS_SUCCESS或适当的 NTSTATUS 值。 可能的 NTSTATUS 值包括:

返回代码 说明
STATUS_RANGE_NOT_LOCKED 指定的字节范围未锁定。

注解

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

ZwUnlockFile 的调用方必须在 IRQL = PASSIVE_LEVEL 且启用了特殊内核 APC 的情况下运行**。

注意

如果在用户模式下调用 ZwUnlockFile 函数,则应使用名称“NtUnlockFile”而不是“ZwUnlockFile”。

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

要求

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

另请参阅

ZwLockFile