BUG: Win95: ScsiPortGetDeviceBase Does Not Return Linear Address

Last reviewed: June 4, 1997
Article ID: Q169584
This article applies to:
  • Microsoft Win32 Device Development Kit (DDK) for Windows 95, version 4.0 on the following platform: - Win95

SYMPTOMS

Under Windows 95, when ScsiPortGetDeviceBase is called to obtain the address of memory window, an Invalid Page Fault or General Protection Fault may occur when this address is accessed via ScsiPortReadRegisterxxx or ScsiPortWriteRegisterxxx.

CAUSE

Under Windows 95, ScsiPortGetDeviceBase returns a memory address as a physical address not a linear address. Accessing this address as a linear address may result in Invalid Page Faults or General Protection Faults if the linear address and physical address are not the same. This condition is typically true if the physical address is above 1MB.

RESOLUTION

To work around this problem, use the VMM function _MapPhysToLinear to map the returned physical address to its linear address.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this bug and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

This problem would not typically be seen with legacy devices for two reasons:

  • Most legacy devices have memory window addresses below 1MB where the physical address and linear address are the same.
  • Most legacy devices can be accessed via I/O registers or memory windows with a preference toward the use of I/O registers.


Additional query words: diskmem win95
Keywords : NTDDKStorage
Version : 4.0
Platform : Win95
Issue type : kbbug


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 4, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.