READ_REGISTER_ULONG Doesn't Preserve ULONG Semantics on Alpha

ID: Q160610


The information in this article applies to:


SYMPTOMS

The READ_REGISTER_ULONG routine in the HAL for Alpha platform computers does not preserve the ULONG semantics, which may cause the computer to stop responding or bugcheck.


CAUSE

Currently, the READ_REGISTER_ULONG routing explicitly zeros out the upper four bytes of the return value. This will destroy ULONG semantics, where bit 31 is sign extended through to bit 63. This will potentially cause drivers that poke memory mapped I/O for expected signatures to fail when comparing the return value of READ_REGISTER_ULONG to a static constant when bit 31 of the constant is set.


STATUS

Microsoft has confirmed this to be a problem in Microsoft Windows NT version 4.0.
This problem was corrected in the latest Microsoft Windows NT 4.0 U.S. Service Pack. For information on obtaining the service pack, query on the following word in the Microsoft Knowledge Base (without the spaces):

S E R V P A C K

Additional query words: prodnt alpha


Keywords          : kbhw kbbug4.00 kbfix4.00.sp2 NTSrvWkst 
Version           : 4.0
Platform          : winnt 
Issue type        : 

Last Reviewed: February 2, 1999