BUG: Win95: ScsiPortGetDeviceBase Does Not Return Linear Address
Article ID: 169584
Article Last Modified on 5/24/2004
APPLIES TO
- Microsoft Win32 Device Driver Kit for Windows 2000
This article was previously published under Q169584
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.
Additional query words: diskmem win95
Keywords: kbbug KB169584