Winapi 关于Win32 LockFileEx API中文件偏移量的混淆
根据文档,文件偏移量在Winapi 关于Win32 LockFileEx API中文件偏移量的混淆,winapi,ntfs,Winapi,Ntfs,根据文档,文件偏移量在lpOverlapped->offset/OffsetHigh中指定。但是当调试winword.exe来分析其文件系统行为时,我看到它对一个122字节的文件调用了LockFileEx(),该文件具有Offset=0xfffffb和OffsetHigh=0xffffff,调用成功完成。显然这不是一个有效的偏移量,这意味着什么?来自MSDN: 锁定超出当前文件结尾位置的区域不是错误 他们可能将锁用作某种标志或用于同步。我严重怀疑WinWord是否会使用这样的偏移量调用LockF
lpOverlapped->offset/OffsetHigh
中指定。但是当调试winword.exe来分析其文件系统行为时,我看到它对一个122字节的文件调用了LockFileEx()
,该文件具有Offset=0xfffffb
和OffsetHigh=0xffffff
,调用成功完成。显然这不是一个有效的偏移量,这意味着什么?来自MSDN:
锁定超出当前文件结尾位置的区域不是错误
他们可能将锁用作某种标志或用于同步。我严重怀疑WinWord是否会使用这样的偏移量调用LockFileEx
(0xffffffffffffb
is-5
如果作为有符号值处理,18446744073709551611
作为无符号值)。在我怀疑WinWord中存在缺陷之前,我会怀疑您的调试中存在缺陷。现在我怀疑-5是从文件末尾返回的5个字节,这对于查找是有意义的,但不是锁我创建了一个示例并测试了LockFileEx
函数,但它没有按照您所说的那样工作,您能否提供可复制的代码片段,以便我们发现问题。