Cannot Hibernate or Suspend Computer with Low Memory (279864)



The information in this article applies to:

  • Microsoft Windows Millennium Edition
  • Microsoft Windows 98
  • Microsoft Windows 98 Second Edition

This article was previously published under Q279864
If this article does not describe your hardware-related issue, please see the following Microsoft Web site to view more articles about hardware:

SYMPTOMS

When you attempt to place a computer in Hibernate or Suspend (Standby) mode, a computer with 64 megabytes (MB) or less of physical memory (RAM) may not enter Hibernate or Standby mode, and may immediately return to typical (full-power) Windows operation.

CAUSE

This problem can occur if all of the RAM in the computer has been allocated (is in use) by software (programs or device drivers). Specifically, this problem can occur if all of the physical RAM located at addresses below 640 kilobytes (KB) is allocated and locked so that it cannot be freed by Memory Manager (VMM).

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

When Windows processes the Hibernate or Suspend command, it must allocate one or more 4-KB page of memory, which is mapped to physical memory that is located at addresses below 640 KB. This memory is used to store data that is used during the resume operation.

The code that processes this data when the computer resumes runs in Real mode, which means it cannot access memory addresses above 640 KB. Therefore, this data must be located at addresses below 640 KB.

Certain device drivers or other software may allocate memory that is "locked," meaning that it is mapped to physical pages of RAM, and that this mapping cannot be changed (cannot be mapped to different physical pages). Physical pages that are locked cannot be freed by Memory Manager.

The problem that is described in this article occurs when a device driver or other software allocates memory that is mapped to physical memory that is located below 640 KB, locks those pages, and does not leave any unlocked pages physically located below 640 KB. Later, when Virtual Memory Manager tries to allocate one or more pages of memory that is physically located below 640 KB, it does not find any free pages. Because all of the non-free pages below 640 KB are also locked, VMM cannot move or free any of those pages. Therefore, the allocation attempt does not succeed, and the computer cannot enter Hibernate or Suspend mode.

Modification Type:MajorLast Reviewed:8/8/2006
Keywords:kbenv kbprb KB279864