When one or more pages of physical memory that have been marked as pageable are not actively being used by anyone in the system, the Memory Manager may free up that physical memory by temporarily storing the contents of those pages in the paging file. The next time the paged out memory is accessed, a page fault will occur (see So, Exactly What Is A Page Fault).
As part of processing that page fault, the Windows Memory Manager will need to use the storage stack to read the data it stored in the paging file. If the storage stack fails to retrieve the data from the paging file for just about any reason, the system bugchecks with KERNEL_DATA_INPAGE_ERROR. The reasons for such a failure are generally limited to the lack of system resources on a highly stressed system or hardware failure.
Who Did It?
This bugcheck is caused exclusively by a malfunctioning driver in the storage stack. The second parameter to the bugcheck is the NTSTATUS error value that was returned by a member of the storage stack and that ultimately led to the bugcheck. The DDK documentation lists common error values and the components in the storage stack that return them, so consult the documentation in order to gain clues as to which component is malfunctioning.
How Should I Fix It?
The steps that you would need to take in order to resolve this problem depend on the error code returned in the second bugcheck parameter. Consult the DDK documentation for further details.