HasOverlappedIoCompleted Returns TRUE While GetOverlappedResult() Returns 0 Bytes Transferred

This article was previously published under Q184072
This article has been archived. It is offered "as is" and will no longer be updated.
Symptoms
After an application (such as Microsoft SQL Server) issues asynchronousI/O to the hard disk, HasOverlappedIoCompleted returns TRUE andGetOverlappedResult() returns 0 bytes transferred.

NOTE: After a few microseconds, GetOverlappedResult() returns the correctvalue.
Cause
This problem has primarily been observed on symmetric multiprocessing(SMP) computers, where I/O completion updates fields in the OVERLAPPEDstructure in the wrong order.
Resolution
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
152734 How to Obtain the Latest Windows NT 4.0 Service Pack

Status
Microsoft has confirmed that this is a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.
Properties

Article ID: 184072 - Last Review: 10/26/2013 01:54:00 - Revision: 2.0

Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows NT Server 4.0 Enterprise Edition

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbfix KB184072
Feedback