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 例程在成功时返回STATUS_SUCCESS或相应的 NTSTATUS 值。 可能的 NTSTATUS 值包括:
返回代码 | 说明 |
---|---|
STATUS_RANGE_NOT_LOCKED | 指定的字节范围未锁定。 |
注解
NtUnlockFile 例程采用 ByteOffset 和 Length 参数指定的字节范围。 此范围必须与文件中以前通过对 NtUnlockFile 例程的单个调用锁定的字节范围相同。 无法通过调用 NtUnlockFile 来解锁两个以前锁定的相邻范围。 也不能解锁以前通过对 NtUnlockFile 例程进行单个调用锁定的区域的一部分。
NtUnlockFile 的调用方必须在 IRQL = PASSIVE_LEVEL 且启用了特殊内核 APC 的情况下运行。
注意
如果对 NtUnlockFile 函数的调用在内核模式下发生,则应使用名称“ZwUnlockFile”而不是“NtUnlockFile”。
对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 NtXxx 和 ZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxx 和 ZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅备注部分) |
DDI 符合性规则 | HwStorPortProhibitedDDI,PowerIrpDDis |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈