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



The information in this article applies to:

  • Microsoft Windows Vista Beta 2 English (United States)
  • Microsoft Windows Server 2003, Standard Edition
  • Microsoft Windows Server 2003, Enterprise Edition
  • Microsoft Windows Server 2003, Datacenter Edition
  • 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
  • Microsoft Windows 2000 Server

Beta Information

This article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice.

No formal product support is available from Microsoft for this Beta product. For information about how to obtain support for a Beta release, see the documentation that is included with the Beta product files, or check the Web location where you downloaded the release.

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.

Modification Type:MajorLast Reviewed:1/30/2006
Keywords:kbDDK kbHardware kbinfo kbtshoot KB913379 kbAudDeveloper kbAudITPRO