Tuesday, September 26, 2006

Hibernation / Crashdump details

Having spent numerous hours of trial-and-error discovery of the limits of hibernation and crashdump resources, I thought I'd post them here to save myself time later (and help anyone else searching for these answers). Note that this information was verified on Windows 2000 SP4, Windows XP SP2, and Windows 2003 SP1 & R2 using a ScsiPort miniport driver.

  • MaximumTransferLength: The maximum I/O size you'll get from ScsiPort during hibernation and crashdump is 4KB (PAGE_SIZE). This will change in Windows Vista to 64KB.
  • The maximum device extension size that can be allocated during hibernation and crashdump is 16KB.
  • The maximum uncached extension size that can be allocated during hibernation and crashdump is 63KB (despite the DDK documentation claiming the max is 32KB).
  • The maximum device extension size that can be allocated during normal runtime, while allowing Windows to call your miniport to hibernate or crashdump, is 900KB.
  • The maximum uncached extension size that can be allocated during normal runtime, while allowing Windows to call your miniport to hibernate or crashdump, is 900KB.

No comments: