LockFileEx功能锁定打开的文件中的字节范围以进行共享或独占访问。
BOOL LockFileEx(
HANDLE 【HFILE】, | //处理文件锁定 |
DWORD 【dwFlags中】, | //功能行为修改标志 |
DWORD 【//保留,必须设置为零】, | //保留,必须设置为零 |
DWORD 【nNumberOfBytesToLockLow】, | //低位32位的长度锁定 |
DWORD 【nNumberOfBytesToLockHigh】, | //高32位的长度来锁定 |
LPOVERLAPPED 【lpOverlapped的】 | // addr具有锁定区域起始偏移的结构 |
); |
参数
【HFILE】
标识一个文件的打开句柄,该文件要锁定一段字节,用于共享或独占访问。必须使用GENERIC_READ或GENERIC_WRITE访问该文件创建句柄。
【dwFlags中】
指定修改此函数的行为的标志。此参数可以是以下值中的一个或多个:
值 | 含义 |
LOCKFILE_FAIL_IMMEDIATELY | 如果指定了此值,则如果无法获取请求的锁,该函数将立即返回。否则,它等待。 |
LOCKFILE_EXCLUSIVE_LOCK | 如果指定了此值,该函数将请求排他锁。否则,它请求一个共享锁。 |
【//保留,必须设置为零】
Reserved parameter; must be set to zero.
【nNumberOfBytesToLockLow】
指定要锁定的字节范围长度的低32位。
【nNumberOfBytesToLockHigh】
指定要锁定的字节范围长度的高32位。
【lpOverlapped的】
指向该函数与锁定请求一起使用的OVERLAPPED结构。这个结构是必需的,包含锁定范围开头的文件偏移量。
返回值
如果函数成功,返回值不为零。
如果函数失败,则返回值为零或为NULL。要获取扩展错误信息,请调用GetLastError.
备注
使用文件的区域来锁定文件的指定区域的共享或独占访问权限。文件锁在进程创建过程中不被新进程继承。
锁定文件的一部分进行独占访问将拒绝对文件的指定区域的读取和写入访问的所有其他进程。锁定超出当前文件结尾位置的区域不是错误。
锁定文件的共享访问的一部分将拒绝所有进程对文件的指定区域的写入访问,包括首先锁定该区域的进程。所有进程都可以读取锁定区域。
如果对已经具有共享或排除锁定的文件的范围请求排他锁,则此调用将等待锁定被授予,除非指定了LOCKFILE_FAIL_IMMEDIATELY标志。
锁定可能不与文件的现有锁定区域重叠。
也可以看看