我的应用程序中的磁盘上有一个内存映射文件。我的应用程序创建了多个线程,所有这些线程都是在同一时间或不同时间映射同一文件的内存。在其中一个主题中,我调用的是unmapViewOfFile
,后跟SetFilePointer
和SetEndOfFile
。 SetEndOfFile
调用失败,错误为ERROR_USER_MAPPED_FILE
。 This链接表明这是一个已知的问题,它需要取消映射映射文件的所有视图。如何检查文件是否仍然映射到另一个线程/进程以及如何从所有线程/进程中取消映射?