OSRLogoOSRLogoOSRLogo x Seminar Ad

Everything Windows Driver Development

GoToHomePage xLoginx

    Thu, 14 Mar 2019     118020 members


  Online Dump Analyzer
OSR Dev Blog
The NT Insider
The Basics
File Systems
ListServer / Forum
  Express Links
  · The NT Insider Digital Edition - May-June 2016 Now Available!
  · Windows 8.1 Update: VS Express Now Supported
  · HCK Client install on Windows N versions
  · There's a WDFSTRING?
  · When CAN You Call WdfIoQueueP...ously



What Happened?


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.


User Comments
Rate this article and give us feedback. Do you find anything missing? Share your opinion with the community!
Post Your Comment

"Real example :)"
I did it by mistake. I have an USB extern harddrive with separate power supply, unpartitioned, and I activated the pagefile on it. After using it a while I unplug it unexpectedly but not the USB, the power supply. I get KERNEL_DATA_INPAGE_ERROR bugcheck.

27-Feb-09, Gabriel Bercea

"bug check 7a"
MmMapLockedPagesSpecifyCache bug checked with this code when I set /MAXMEM=448 on Windows XP SP2 and try to map some memory above 448M to user space as non cached memory.

The lock code was 1 and the address that page faulted was 0xc001a000. Does windows page out the page tables also?

When add more memory to system and set MAXMEM=1024, it goes through fine.

28-Jul-07, Udaya Shankar

"Not always problem with Storage Stack"
I used MmAllocateContiguousMemorySpecifyCache With NoCache Option and while freeing I used MmFreeContiguousMemory instead of MmFreeContiguousMemorySpecifyCache. And the driver bug checked with KERNEL_STACK_IN_PAGE_ERROR during unload. And when i fixed it using the SpecifyCache function, the bug check disappeared.

02-Nov-04, gemini gemini

"Needs real-life debugging example"
I agree with William, this needs a debugging example.

29-Aug-04, Erwin Zoer

(1) Ok but needs a sample demostration of the bugcheck. Too simple of a description but ok. Something is better than nothing.

25-Aug-04, William Jones

Post Your Comments.
Print this article.
Email this article.
bottom nav links