TPSTART Enhanced to Support 16-bit Windows Applications (140609)
The information in this article applies to:
- Microsoft SNA Server 2.0, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 2.1, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 2.11 SP1, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 2.11 SP2, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 3.0 SP1, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 3.0 SP2, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 3.0 SP3, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 3.0 SP4, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 4.0, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 4.0 SP1, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 4.0 SP2, when used with:
- the operating system: Microsoft Windows NT
- Microsoft SNA Server 4.0 SP3, when used with:
- the operating system: Microsoft Windows NT
This article was previously published under Q140609 SYMPTOMS
When you attempt to invoke a 16-bit Windows application with TPSTART.EXE,
the invokable transaction program (TP) application program starter for SNA
Server Windows NT clients, the following errors occur:
- On Windows NT 3.5:
16-bit Windows subsystem
NTVDM encountered a system error. Access is denied
Choose close to terminate the app, or ignore to continue
After pressing Ignore, this popup occurs 10-12 times. After choosing
Ignore each time, the application finally starts. However, subsequent
attempts to autostart the application fail.
- On Windows NT 3.51:
TPSTART.EXE calls CreateProcess properly, but it receives an Error 5
(ACCESS_DENIED).
CAUSE
TPSTART.EXE does not support the startup of 16-bit Windows applications.
The TPSTART.EXE program is setting the DETACHED_PROCESS flag when calling
CreateProcess, which causes the startup of 16-bit Windows applications to
fail with ACCESS_DENIED. This problem does not occur when starting 32-bit
Windows applications, even though the 32-bit application is not a detached
process.
Also, if the TP is configured as queued (with SNAServiceType=5), SNA Server
does not detect that the application has ended since the default Windows NT
virtual DOS machine (VDM) is still running. This causes a second invocation
of the TP to fail.
RESOLUTION
Microsoft has updated the file <snaroot>\SYSTEM\TPSTART.EXE to correct this
problem.
To support autostarting of 16-bit Windows applications, the following new
TP-specific registry settings are now supported under the subtree
HKEY_LOCAL_MACHINE under the subkey:
/SYSTEM/CurrentControlSet/Services/SnaBase/Parameters/TPs/<tpname>/
Parameters/
Add following information:
Value Name: Win16App
Data Type: REG_SZ
Data: YES
The following entry under the same subkey is also required to autostart 16-
bit Windows applications:
Value Name: SeparateWowVDM
Data Type: REG_SZ
Data: YES
This causes TPSTART.EXE to start the 16-bit application in its own Windows
NT VDM. This entry is required if TP is queued (where SNAServiceType=5). If
the TP is configured as queued, and SeparateWowVDM is not set to YES, then
the TP is only invoked once. Subsequent attempts to start the TP fail,
because according to SNA Server the TP is still running, because SNA Server
finds that the Windows NT VDM (NTVDM) process ID is still running.
Starting a separate NTVDM corrects this problem because the NTVDM process
ends when the 16-bit Windows application ends.
STATUS
This feature is included in the latest U.S. Service Pack for SNA Server for
Windows NT, version 2.11. For information on obtaining the Service Pack,
query on the following word in the Microsoft Knowledge Base (without the
spaces):
Modification Type: | Major | Last Reviewed: | 5/22/2003 |
---|
Keywords: | kbnetwork KB140609 |
---|
|