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.
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.