Microsoft KB Archive/255570

= Wrong Value for InDOS Flag After Absolute Disk Read and Write Functions in 16-Bit MS-DOS-Based Programs =

Article ID: 255570

Article Last Modified on 3/1/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition
 * Microsoft Windows NT Server 4.0 Standard Edition
 * Microsoft Windows NT Workstation 4.0 Developer Edition

-



This article was previously published under Q255570



SYMPTOMS
This article applies only to MS-DOS-based 16-bit programs. Some MS-DOS-based programs (including terminate-and-stay-resident, or TSR programs), make use of the InDOS flag to manage synchronization. The InDOS flag is usually set to 1 when MS-DOS is handling certain operations and to zero otherwise.

The operations that affect the InDOS flag include absolute disk read and absolute disk write (interrupts 25h and 26h) operations. Under MS-DOS, the interrupt 25h and 26h handlers increment the InDOS flag, perform the disk operation, and then decrement the InDOS flag (on return, it is 0).

Because of a problem in the port of MS-DOS, the InDOS flag is decremented but never incremented. On the return of an interrupt 25h or 26h operation, the value of the InDOS flag is -1. After several interrupts, it becomes -2, -3, and so on. The InDOS flag is then corrupted and becomes meaningless. This may prevent some 16-bit MS-DOS-based programs that make use of the InDOS flag from working properly.



CAUSE
The disk operations are actually handled by the Windows NT Virtual DOS Machine (NTVDM), which is a 32-bit program, not by the MS-DOS emulator (Ntdos.sys). The interrupt 25h and 26h handlers do not call the functions that take care of the physical disk operation.



Windows 2000
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

Windows NT 4.0
A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem.

To resolve this problem, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English-language version of this fix should have the following file attributes or later:   Date        Time     Size   File name  Platform ---  02/23/2000  02:26p  27,858  Ntdos.sys  x86 02/23/2000 02:26p  27,858  Ntdos.sys  Alpha



Windows 2000
Microsoft has confirmed that this is a problem in Windows 2000. This problem was first corrected in Windows 2000 Service Pack 1.

Windows NT 4.0
Microsoft has confirmed that this is a problem in Windows NT 4.0.

Keywords: kbhotfixserver kbqfe kbbug kbfix kbwin2000sp1fix KB255570

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.