unlockFile 函数 (fileapi.h)
解锁打开的文件中的区域。 通过解锁区域,其他进程可以访问该区域。
若要指定区域的另一种方法,请使用 UnlockFileEx 函数。
语法
BOOL UnlockFile(
[in] HANDLE hFile,
[in] DWORD dwFileOffsetLow,
[in] DWORD dwFileOffsetHigh,
[in] DWORD nNumberOfBytesToUnlockLow,
[in] DWORD nNumberOfBytesToUnlockHigh
);
参数
[in] hFile
包含使用 LockFile 锁定的区域的文件的句柄。 文件句柄必须已使用 GENERIC_READ 或 GENERIC_WRITE 访问权限创建。 有关详细信息,请参阅 文件安全性和访问权限。
[in] dwFileOffsetLow
锁定区域开始的文件中起始字节偏移量的低序字。
[in] dwFileOffsetHigh
锁定区域开始的文件中起始字节偏移量的高序字。
[in] nNumberOfBytesToUnlockLow
要解锁的字节范围长度的低序字。
[in] nNumberOfBytesToUnlockHigh
要解锁的字节范围长度的高序字。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
此函数始终同步运行,但当完成端口与文件句柄关联时,可能不会将完成项排队。
解锁文件的某个区域会释放文件上以前获取的锁。 要解锁的区域必须与现有锁定区域完全对应。 文件的两个相邻区域不能单独锁定,然后使用跨两个锁定区域的单个区域解锁。
如果进程终止并锁定了文件的一部分,或者关闭了具有未完成锁的文件,则操作系统会解锁锁。 但是,操作系统解锁这些锁所需的时间取决于可用的系统资源。 因此,建议进程在终止时显式解锁已锁定的所有文件。 如果未执行此操作,则如果操作系统尚未解锁这些文件,可能会拒绝访问这些文件。
在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。
技术 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 是 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是 |
群集共享卷文件系统 (CSV) | 是 |
弹性文件系统 (ReFS) | 是 |
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | fileapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |