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

Article translations Article translations
Article ID: 255570 - View products that this article applies to.
This article was previously published under Q255570
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page

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.

Resolution

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
				

Status

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.

Properties

Article ID: 255570 - Last Review: November 2, 2013 - Revision: 3.0
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
Keywords: 
kbnosurvey kbarchive kbHotfixServer kbqfe kbbug kbfix kbwin2000sp1fix KB255570

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com