none
Windows Server 2003 / 2008 NTVDM /TSAWARE INI Issues RRS feed

  • Question

  • Executing 32 bit code from 16 bit code (Under NTVDM.exe) appers behaves differently under Server 2003 and 2008.

    I have used DUMPBIN.EXE /HEADERS on the NTVDM.EXE from both Server 2003 and Server 2008.  The 2008 version of NTVDM.EXE appears to be terminal server aware, where as the 2003 edition does not.



    DUMP FROM 2003 NTVDM.EXE


    Microsoft (R) COFF Binary File Dumper Version 6.00.8447
    Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


    Dump of file ntvdm.exe

    PE signature found

    File Type: EXECUTABLE IMAGE

    FILE HEADER VALUES
                 14C machine (i386)
                   3 number of sections
            45D699EC time date stamp Sat Feb 17 06:00:12 2007
                   0 file pointer to symbol table
                   0 number of symbols
                  E0 size of optional header
                 10F characteristics
                       Relocations stripped
                       Executable
                       Line numbers stripped
                       Symbols stripped
                       32 bit word machine

    OPTIONAL HEADER VALUES
                 10B magic #
                7.10 linker version
               65600 size of code
               45C00 size of initialized data
                   0 size of uninitialized data
               103CA RVA of entry point
                1000 base of code
               67000 base of data
             F000000 image base
                1000 section alignment
                 200 file alignment
                5.02 operating system version
                5.02 image version
                4.00 subsystem version
                   0 Win32 version
               AD000 size of image
                 400 size of headers
               7280C checksum
                   3 subsystem (Windows CUI)
                   0 DLL characteristics
               40000 size of stack reserve
                2000 size of stack commit
              100000 size of heap reserve
                1000 size of heap commit
                   0 loader flags
                  10 number of directories
               656A0 [     E7C] RVA [size] of Export Directory
               63024 [      8C] RVA [size] of Import Directory
               AB000 [    1B20] RVA [size] of Resource Directory
                   0 [       0] RVA [size] of Exception Directory
                   0 [       0] RVA [size] of Certificates Directory
                   0 [       0] RVA [size] of Base Relocation Directory
                1690 [      1C] RVA [size] of Debug Directory
                   0 [       0] RVA [size] of Architecture Directory
                   0 [       0] RVA [size] of Special Directory
                   0 [       0] RVA [size] of Thread Storage Directory
                34B8 [      40] RVA [size] of Load Configuration Directory
                 258 [      88] RVA [size] of Bound Import Directory
                1000 [     660] RVA [size] of Import Address Table Directory
                   0 [       0] RVA [size] of Delay Import Directory
                   0 [       0] RVA [size] of Reserved Directory
                   0 [       0] RVA [size] of Reserved Directory


    SECTION HEADER #1
       .text name
       6551C virtual size
        1000 virtual address
       65600 size of raw data
         400 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    60000020 flags
             Code
             Execute Read

      Debug Directories

        Type       Size      RVA  Pointer
        ------ -------- -------- --------
        cv           22 00004CF4     40F4    Format: RSDS

    SECTION HEADER #2
       .data name
       43E4C virtual size
       67000 virtual address
        4E00 size of raw data
       65A00 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0000040 flags
             Initialized Data
             Read Write

    SECTION HEADER #3
       .rsrc name
        1B20 virtual size
       AB000 virtual address
        1C00 size of raw data
       6A800 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    40000040 flags
             Initialized Data
             Read Only

      Summary

           44000 .data
            2000 .rsrc
           66000 .text

    DUMP FROM 2008 NTVDM.EXE


    Microsoft (R) COFF Binary File Dumper Version 6.00.8447
    Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


    Dump of file ntvdm.exe

    PE signature found

    File Type: EXECUTABLE IMAGE

    FILE HEADER VALUES
                 14C machine (i386)
                   4 number of sections
            47918BAF time date stamp Sat Jan 19 05:33:35 2008
                   0 file pointer to symbol table
                   0 number of symbols
                  E0 size of optional header
                 102 characteristics
                       Executable
                       32 bit word machine

    OPTIONAL HEADER VALUES
                 10B magic #
                8.00 linker version
               6F200 size of code
               4EC00 size of initialized data
                   0 size of uninitialized data
                4DC5 RVA of entry point
                1000 base of code
               71000 base of data
             F000000 image base
                1000 section alignment
                 200 file alignment
                6.00 operating system version
                6.00 image version
                6.00 subsystem version
                   0 Win32 version
               C1000 size of image
                 400 size of headers
               8DBAE checksum
                   3 subsystem (Windows CUI)
                8140 DLL characteristics
                       RESERVED - UNKNOWN
                       RESERVED - UNKNOWN
                       Terminal Server Aware
               40000 size of stack reserve
                2000 size of stack commit
              100000 size of heap reserve
                1000 size of heap commit
                   0 loader flags
                  10 number of directories
               6F3F0 [     E00] RVA [size] of Export Directory
               6D18C [      8C] RVA [size] of Import Directory
               B6000 [    1C80] RVA [size] of Resource Directory
                   0 [       0] RVA [size] of Exception Directory
                   0 [       0] RVA [size] of Certificates Directory
               B8000 [    77B8] RVA [size] of Base Relocation Directory
                15E0 [      1C] RVA [size] of Debug Directory
                   0 [       0] RVA [size] of Architecture Directory
                   0 [       0] RVA [size] of Special Directory
                   0 [       0] RVA [size] of Thread Storage Directory
                4D40 [      40] RVA [size] of Load Configuration Directory
                 278 [      94] RVA [size] of Bound Import Directory
                1000 [     5A8] RVA [size] of Import Address Table Directory
                   0 [       0] RVA [size] of Delay Import Directory
                   0 [       0] RVA [size] of Reserved Directory
                   0 [       0] RVA [size] of Reserved Directory


    SECTION HEADER #1
       .text name
       6F1F0 virtual size
        1000 virtual address
       6F200 size of raw data
         400 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    60000020 flags
             Code
             Execute Read

      Debug Directories

        Type       Size      RVA  Pointer
        ------ -------- -------- --------
        cv           22 00004D88     4188    Format: RSDS

    SECTION HEADER #2
       .data name
       447AC virtual size
       71000 virtual address
        5800 size of raw data
       6F600 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0000040 flags
             Initialized Data
             Read Write

    SECTION HEADER #3
       .rsrc name
        1C80 virtual size
       B6000 virtual address
        1E00 size of raw data
       74E00 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    40000040 flags
             Initialized Data
             Read Only

    SECTION HEADER #4
      .reloc name
        8584 virtual size
       B8000 virtual address
        8600 size of raw data
       76C00 file pointer to raw data
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    42000040 flags
             Initialized Data
             Discardable
             Read Only

      Summary

           45000 .data
            9000 .reloc
            2000 .rsrc
           70000 .text

    Tuesday, March 24, 2009 5:53 PM

All replies

  • Hi,

     

    This forum is dedicated to Windows Server 2008 application compatibility and certification related issues.

     

    There is a separate forum available for Terminal Services where you may like to post your question.

     

    Hope the above helps.

     

    Thanks

     

    Saswati 

    Thursday, May 14, 2009 5:55 PM
  • This post just saved my life. I had several 16 Bit Applications where the INI Mapping was not working under 2008. I copied the NTVDM.exe from the 2003 TS and now they work. Hopefully that won't bust anything ;-)
    Tuesday, September 8, 2009 6:17 AM
  • You could just run editbin ntvdm.exe /TSAWARE :no

    that is a safer way to fix the issue rather than copying the old version over.

    Saturday, November 6, 2010 3:13 PM