This article was previously published under Q141117
When copying files from a diskette on a Windows computer, you mayoccasionally experience an "Error performing inpage operation".
In this scenario, this error usually indicates physical problems on thediskette media, and is probably unrelated to paging operations involvingthe Windows paging file, despite the wording of the error message.
Copy utilities commonly use the CopyFile() Win32 API to copy files.
For small files (where small is arbitrarily defined in the Windows source code as less than 256 kilobytes) the Windows CopyFile() API doesnot actually open the source file and read from it using the CreateFile()and ReadFile() APIs as might be expected.
Instead, the CopyFile() API creates a File Mapping and maps the file intovirtual memory. Data is then read from the file by simply accessing thismemory. As the memory is accessed, the required portions of the file arepaged into memory on demand. This leverages the paging functionality of theWindows Virtual Memory Manager, but introduces the jargon of Paging intothis particular file copy scenario.
Consequently, if I/O errors occur while processing a CopyFile() API for a"small" file, they will not be reported as File I/O Errors. Instead, asthese errors are detected in what is effectively a paging operation (albeitunrelated to the Windows paging file), they will be reported as "Errorperforming inpage operation".
Additionally, errors caused by network connectivity can cause these errors.Mismatched MTU sizes or truncation of a packet at a router can result inthis error when files larger than the largest packet size are copied overthe network. In essence, the network connection is the media that has thephysical problem.
For more information on memory-mapped files, refer to the following:
Helen Custer's "Inside Windows NT", Section 6.2.1, "Sharing Memory".
The Win32 Programmer's Reference, Volume 2, Chapter 47, "File Mapping".