关于 Win32 LockFileEx 中文件偏移的混淆 API
Confusion about file offset in Win32 LockFileEx API
根据 LockFileEx()
文档,文件偏移量在 lpOverlapped->Offset/OffsetHigh
中指定。但是在调试 winword.exe
以分析其文件系统行为时,我看到它使用 Offset=0xfffffffb
和 OffsetHigh=0xffffffff
在一个 122 字节的文件上调用 LockFileEx()
,并且调用成功完成。显然这不是一个有效的偏移量,这是什么意思?
来自 MSDN:
Locking a region that goes beyond the current end-of-file position is not an error.
他们可能将锁用作某种标志或用于同步。
根据 LockFileEx()
文档,文件偏移量在 lpOverlapped->Offset/OffsetHigh
中指定。但是在调试 winword.exe
以分析其文件系统行为时,我看到它使用 Offset=0xfffffffb
和 OffsetHigh=0xffffffff
在一个 122 字节的文件上调用 LockFileEx()
,并且调用成功完成。显然这不是一个有效的偏移量,这是什么意思?
来自 MSDN:
Locking a region that goes beyond the current end-of-file position is not an error.
他们可能将锁用作某种标志或用于同步。