Microsoft KB Archive/913379

From BetaArchive Wiki
Knowledge Base


BIOS manufacturers should not clear the IDE Decode Enable bit in the _STM ACPI method

Article ID: 913379

Article Last Modified on 3/17/2007



APPLIES TO

  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Windows Vista Ultimate
  • Windows Vista Home Premium
  • Windows Vista Home Basic
  • Windows Vista Enterprise
  • Windows Vista Business 64-bit edition
  • Windows Vista Business
  • Windows Vista Ultimate 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Enterprise 64-bit edition



SYMPTOMS

An IDE channel and all attached devices are missing from the computer. If the boot drive is on the missing channel, you receive the following "Stop error" error message on a blue screen:

KERNEL_DATA_INPAGE_ERROR
The bugcheck is (0x0000007a (0xe15a48e8, 0xc000000e, 0xbf914cd9, 0x148a3860) in Win32k.sys where 0xC000000E
STATUS_NO_SUCH_DEVICE

CAUSE

During re-enumeration of a previously enumerated IDE controller, a race condition exists between Atapi.sys and Pciidex.sys or between Ataport.sys and Pciidex.sys. In this race condition, the following conditions are true:

  • Atapi.sys and Ataport.sys use the _STM method to select a transfer mode on a channel. The _STM method is in the Advanced Configuration and Power Interface (ACPI) BIOS.
  • Pciidex.sys verifies whether that channel exists by checking for the IDE Decode Enable bit.

If the BIOS implementation of the _STM method has cleared the IDE Decode Enable bit, Pciidex.sys determines that the channel does not exist. When this behavior occurs, Pciidex.sys does not enumerate the channel.

RESOLUTION

Because Atapi.sys and Ataport.sys never run the _STM method as long as there is I/O on the channel, the _STM method does not have to clear the IDE Decode Enable bit. Therefore, BIOS manufacturers should not clear the IDE Decode Enable bit in the _STM method.

Keywords: kbddk kbhardware kbinfo kbtshoot KB913379