Using the NTSWD Utility to Diagnose MS Windows Workstation Problems
Articles and Tips: article
Product Support Engineer
Novell Technical Services
01 May 1995
The Novell Technical Support Windows Diagnostic (NTSWD) utility was developed to help support professionals troubleshoot the installation, configuration, and version information of the NetWare Client modules for Windows (EXEs, DRVs, DLLs, and *.386 files). This AppNote explains how to obtain the NTSWD executable and describes the purpose of the various menu options and buttons. It also presents support scenarios that demonstrate how to use the NTSWD utility to troubleshoot DOS/Windows client problems.
Related AppNotes Apr 95 "Integrating the NetWare DOS Requester (VLMs) with Windows for Workgroups" Mar 95 "Support Issues for the NetWare DOS Requester (VLM) 1.20" Mar 95 "Black Screen of Death Explained" Jun 94 "NET.CFG Parameters for the NetWare DOS Requester 1.1" May 94 "The Functions and Operations of the NetWare DOS Requester v1.1"
- Introduction
- Installing the NTSWD Utility
- NTSWD Menu Options and Buttons
- Troubleshooting Workstation Problems with NTSWD
- Summary
Introduction
The Novell Technical Support Windows Diagnostic (NTSWD) utility was developed to help support professionals troubleshoot the installation, configuration, and version information of the NetWare Client modules for Windows. Novell Technical Support developed this tool as a way to provide more details on NetWare's Windows support drivers (EXEs, DRVs, DLLs, and *.386 files).
This AppNote assumes you are running DOS and Microsoft Windows 3.1(1) or Windows for Workgroups (WFWG) 3.11 in 386 Enhanced Mode on at least an 80386-based machine. It also assumes you have installed Novell's DOS/Windows Client kit for VLMs. (For more information on installing the DOS/Windows Client kit, refer to "Support Issues for the NetWare DOS Requester (VLM) 1.2" in the March 1995 issue of Novell Application Notes.)
Note: The current release of the NTSWD utility does not work with MS Windows 95.
To get the most from this AppNote, you should have a good basic understanding of Windows and its terminology. You should also understand the differences between Dynamic Link Libraries (DLLs), drivers (DRVs), and Virtual Device Drivers (VxDs). See Appendix A for a brief explanation of these types of drivers.
This AppNote consists of three main sections. The first section explains how to obtain the NTSWD executable and create the icon for it in Windows. The second section describes the function of the various menu options and buttons. The third section presents several support scenarios that demonstrate how to use the NTSWD utility to troubleshoot DOS/Windows client problems.
Installing the NTSWD Utility
To obtain the latest update of the NTSWD utility, download the most recent release of WINDRx.EXE (where x is the current revision number). This self-extracting file can be found in the following locations:
CompuServe: GO NOVFILES WINDR2.EXE Internet: anonymous ftp to ftp.novell.com pub/netwire/novfiles/ WINDR2.EXE
Note: This utility requires TOOLHELP.DLL. This DLL ships with Windows 3.1x and Windows for Workgroups 3.11. Windows 3.0 users should obtain this DLL from Microsoft's Download Service or from a copy of Windows 3.1x.
Follow these steps to install and run the NTSWD utility:
Boot your machine to DOS, load the network drivers, and log in to a NetWare file server. Make sure the NetWare Windows support drivers load successfully.
Before you start Windows, extract the WINDR2.EXE file. This will result in the creation of several subdirectories, one of which is NTSWD. Change to the NTSWD subdirectory. Copy the NTSWD.EXE file into the Windows directory (C:/WINDOWS if you are running Windows locally).
Start Windows. From Program Manager, open up the NetWare Tools program group. (This group is created by the DOS/Windows client installation program and should already contain an icon for the NetWare User Tools.)
Select Program Manager's File menu option, and then select New. You should see a dialog box similar to the one shown in Figure 1. Select Program Item and click on OK.
Figure 1: Dialog box for creating a new program item in Windows' Program Manager.
In the next dialog box, type in an appropriate Description, Command Line, and Working Directory as shown in Figure 2.
Figure 2: Dialog box for defining the Properties for the new program item.
The Command Line and Working Directory fields should indicate where the NTSWD executable is found. When these fields are filled in correctly, click on OK.
The NTSWD icon should appear in the NetWare Tools folder next to the NetWare User Tools icon. Double-click on the NTSWD utility icon to start the utility.
NTSWD Menu Options and Buttons
This section will help you understand the menu options and buttons found in the NTSWD program. We encourage you to explore each option and become more familiar with its purpose and use. Figure 3 shows the main screen you'll see when you start the NTSWD utility in Windows.
Figure 3: The NTSWD utility's main screen.
Menu Options
The File (Alt-F) menu contains the following options:
Save to file...
Print
Exit
The View (Alt-W) menu contains the following options:
Loaded Programs
Loaded DLLs
Loaded VxDs
NetWare Modules
Note: Either the menu option, button or keystroke will take you to the same list.
The About (Alt-A) menu contains an option that shows the version of NTSWD running. (Currently the latest update is version 1.04.)
Buttons
Loaded Programs. The Loaded Programs button (Alt-P) displays a list of all the Windows applications that are currently running. If you double-click on an application in the list, you will get detailed information pertaining to that application. For example, Figure 4 shows the module information displayed when you double-click on the NWPOPUPprogram.
Figure 4: The Loaded Programs list displays information about all loaded Windows applications.
Note: Instead of double-clicking on a module in the list, you can click on Get Info (Alt-I) to get specific module information.
Loaded DLLs. The Loaded DLLs button (Alt-D) shows a list of DLLs and DRVs loaded. (In Windows, DLLs and DRVs are considered the same.) For example, Figure 5 shows what is displayed when you get information about the NWCALLS.DLL module. This information is useful for verifying the version of a DLL or driver currently loaded in memory.
Figure 5: The Loaded DLLs list displays the Windows DLLs and DRVs currently loaded.
Loaded VxDs. The Loaded VxDs button (Alt-V) shows a list of Virtual Device Drivers currently loaded. For example, Figure 6 shows what is displayed when you double-click on the VTDVxD.
Note: This dialog box is different from the previous ones. The Windows VxD call does not allow us to get as detailed information for Virtual Device Drivers as the others did.
Figure 6: The Loaded VxDs list displays information about Virtual Device Drivers.
Note: If the VTD device driver is not found in the list, usually VTDA is found in its place. VTD is one Microsoft VxD that is often replaced when troubleshooting symptoms associated with the Black Screen of Death (BSOD). For more information, see "Black Screen of Death Explained" in the March 1995 issue of Novell Application Notes.
For NetWare VxDs, the version number is usually the information you are looking for and verifying here.
NetWare Modules. The NetWare Modules button (Alt-N) contains just the information for the DOS/Windows client modules installed from the NetWare client kit. This list does not include the various other Windows drivers loaded. If you want to review only the NetWare specific modules, this is the fastest way to get at this information. Again, the details on each NetWare module can be found by either double-clicking on the module name or selecting the Get Info button. Figure 7 shows the resulting information for the NETWARE.DRVmodule.
Figure 7: The NetWare Programs list shows information about NetWare-specific modules only.
Exiting the NTSWD Utility
To exit the NTSWD utility, either click on the Quit button (Alt-Q) or close the utility by double-clicking on the upper left-hand corner of the program window. You can also exit by selecting the File| Exit menu option.
Using the Save and Print Options
Here is an example of using some of the options under the File menu. A Windows PC typically has many DLLs and DRVs loaded, and it would take a long time to read through each one on-screen. Instead of going through that process, you can use the File | Save to file... and File | Print options.
At the main menu, choose File | Save to file... option. At this point, you should see the dialog box shown in Figure 8. Depending on the situation, you may or may not want to select all of these options.
Figure 8: NTSWD's Save Options dialog box.
When you click on the Save button (Alt-S), you should see the dialog box shown in Figure 9.
Figure 9: NTSWD's Save File As... dialog box.
The default file name is NTSWD.TXT. Once the file is saved, it can be uploaded to a BBS to be reviewed, or sent via an E-mail system such as Internet mail or CompuServe mail.
If you are supporting remote sites, another way of getting the information is to have the user print the NTSWD.TXT file and fax it to you.
Note: The Print option requires that you have an active CAPTURE command or have a printer attached to the workstation.
Troubleshooting Workstation Problems with NTSWD
This section demonstrates several ways to troubleshoot both basic and advanced NetWare Windows drivers issues, using the NTSWD utility.
Scenario 1 After downloading and installing the latest Windows drivers from WINDR2.EXE, a user finds that NetWare broadcast messages are not being displayed in Windows. The user has copied the new version of NWPOPUP.EXE into the C:\WINDOWS\SYSTEMdirectory.
By using NTSWD, you determine that an older version of NWPOPUP.EXEwas left in the Windows directory (C:\WINDOWS). This is the version that was being loaded into memory. The reason is that when Windows loads, it looks first in the WINDOWS directory for the file specified in the INI file. If the file is found in the WINDOWS directory, it is loaded. However, if it is not found in the WINDOWS directory, it then looks in the WINDOWS\SYSTEM directory.
After deleting the old version of the file from the WINDOWS directory, the correct version of NWPOPUP.EXE is loaded from the WINDOWS/SYSTEM directory and the problem is resolved.
Scenario 2 A customer describes a problem that occurs when using Excel 5.0 and Word for Windows 6.0. The problem is related to linking an Excel spreadsheet and a Word document located on a Novell network. The customer claims they have the latest and greatest release of the Novell Windows drivers.
With this information the customer has given you, you are able to find a TID (Technical Information Document) on the NSEPro CD-ROM that describes the customer's symptom. According to TID021776, the solution is to update the Novell Windows support drivers. Upon further investigation, you find that the customer has already downloaded the current revision ofWINDRx.EXEfrom NOVFILES (where x is the current revision number).
The task at hand is to figure out why the problem still exists even though the TID says that the issue should be resolved after applying WINDR2.EXE. The following steps show how to use the NTSWD utility to solve this customer support issue.
Have the customer log in, extract the WINDR2.EXE file (if necessary), run Windows, create the icon for NTSWD, and start the utility, as described previously in this AppNote.
From the main NTSWD window, have the customer choose NetWare Modules (Alt-N).
The TID indicates that NETWARE.DRV version 3.03 should be loaded from the WINDOWS/SYSTEM directory. Have the customer double-click on the driver entry for NETWARE.DRV and read you the detailed information given for this driver. Write the information down as the customer reads you the details.
As the customer reads the file path, you notice that NETWARE.DRVis being loaded from the WINDOWS directory, instead of from theWINDOWS\SYSTEM directory as documented in the WINDRx.TXT readme file. As the customer continues to read, you notice that the version of NETWARE.DRV they have loaded is v3.02.
At this point, you have discovered the problem. The customer had copied the updated NETWARE.DRV to the WINDOWS\SYSTEM directory. However, an old copy of NETWARE.DRVfrom WINUP9.EXE still exists in the WINDOWS directory. This is the driver that is being loaded into memory, and we have verified this with the NTSWD utility.
Have the customer go out to DOS and verify that the old NETWARE.DRVv3.02 exists in the WINDOWS directory and delete it. Then have them verify that the correct NETWARE.DRVv3.03 exists in the WINDOWS\SYSTEM directory by using DIR to look at the file name and date stamp.
The next time Windows is started, the updatedNETWARE.DRV in the WINDOWS\SYSTEMdirectory will be loaded. The customer's issue is resolved.
Scenario 3 Users describe a problem that occurs when they try to run certain applications within Windows. Specifically, they have updated their NetWare DLLs and now when they start their word processor, they receive the following error message:
Application Execution Error--Insufficient memory to run this application. Quit one or more Windows applications.
The users claim if they don't load their sound driver or the NetWare DLLs, the problem does not occur.
You research the issue in the NSE and discover TID500387 that describes a symptom similar to the one described. The users indicated that they have downloaded and applied NWDLL2.EXE. The task at hand is to use the NTSWD utility to solve this support issue.
Have a user run Windows, create the icon for NTSWD, and execute the utility, as described previously in this AppNote.
Since the user probably has many DLLs and DRVs loaded, this is a situation where it is better to save the information to a text file and have it sent it to you for review. Have the user choose the File | Save to file... option from the main screen.
Have the user leave all the Save Options selected.
Note: The reason for wanting to see information on all options rather than just NetWare Modules is that other modules could be the problem in this case.
From there, have the user click on the Save button (Alt-S) and accept the default file name of NTSWD.TXT
At this point, the user could either upload the file to your BBS, or E-mail it to you, or print it out and fax you the information.
After obtaining the NTSWD information from the user, you notice that all the NW*.DLLs are an older version from NWDLL1.EXE that are known to have the symptom described in TID500387.
You call the user back and explain the issue. Once the user replaces the NW*.DLL files in the WINDOWS\SYSTEM directory with the ones found in NWDLL2.EXE, the problem is resolved.
Summary
In this AppNote, you have learned how to load the NTSWD utility within Microsoft Windows on a workstation. You have explored the menu options and buttons found in the NTSWD program and become familiar with the purpose and use of each one. You have also learned how to troubleshoot both basic and advanced NetWare Windows drivers issues using the NTSWD utility.
Note: NTSWD was developed by Novell Technical Services for use as a support tool only. This utility is provided "as is" without any express or implied warranties, including without limitation any implied warranties of merchanta-bility, title and fitness for a particular purpose. It has not been extensively tested on a wide variety of systems, nor is it supported through any of Novell's technical support channels. This software is protected by U.S. copyright and international copyright treaties.
Any comments or suggestions on how Novell can improve the NTSWD utility are welcome. Please send your responses to enhclient@novell.comvia Internet mail.
Appendix A: DLLs, DRVs, and VxDs
The NTSWD utility provides information on Windows applications, DLLs/DRVs, and VxDs. This appendix provides some background information on what functions these libraries and drivers play in regards to the NetWare client software. The table in Figure 10 summarizes this information.
Dynamic Link Libraries (DLLs)
Dynamic link libraries (DLLs) are a major sub-component of Windows. A DLL is an executable file that enables applications to share code and other resources necessary to perform particular tasks. One advantage of a DLL stems from the way that it interacts with the Windows environment. That is, Windows will only load into memory the components of the function library that it needs at a given time. When the application that called the DLL function is finished with the function, Windows can remove from memory the components of the DLL that it doesn't need. This results in efficient memory management within the Windows environment.
In a NetWare environment, the NW*.DLL libraries extend NetWare function calls to the Windows environment. These calls include routines for performing operations involving the NetWare Client API set. Typically, the Novell Windows DLLs provide routines to IPX/SPX-aware applications. For example, NWCALLS.DLL provides the function calls necessary for applications to create an NCP session with a NetWare server.
Drivers (DRVs)
In the Windows environment, there is a API interface for making generic networking calls (WNET). Novell's driver that answers these Windows network requests is NETWARE.DRV. This driver is a "network provider" interface for Windows applications to access NetWare server and network information. NETWARE.DRV is used for performing functions such as mapping drives, logging into servers, printing, and receiving network messages. It receives the request from Windows and makes the appropriate call to the correct NetWare drivers.
Virtual Device Drivers (VxDs)
Microsoft Windows in enhanced mode is actually the graphical user interface (GUI) running on top of a DOS extender. The MS Windows Virtual Memory Manager (VMM) supersedes the DOS kernel and allows for functional 32-bit multitasking of DOS and Windows applications. The VMM uses Virtual Devices Drivers (VxDs) as the means to extend certain functions of DOS. Typically, VxDs provide unique images of the workstation to the each of the Windows and DOS programs running on the computer.
The virtual device model can do more than virtualize the hardware. The model provides a set of services that make Windows VxDs significantly more powerful than the 16-bit DOS and Windows standard-mode drivers. VxDs are true 32-bit device drivers with full access to all the system resources running in Ring 0 of the Intel hardware.
In the NetWare environment, IPX/SPX-based Windows applications run in 32-bit protected mode and use memory above the 1 MB level. However, at the DOS end, the Novell network driver (IPXODI.COM) is a terminate-and-stay-resident (TSR) module that is loaded into memory below 1 MB and is therefore unable to communicate with protected-mode applications. Novell engineers wrote VIPX.386 - a VxD - to allow applications to use IPX from Windows in enhanced mode and be able to pass this information down to the IPXODI.COM real-mode TSR.
For example, some of the responsibilities of VIPX are to copy Event Control Blocks (ECBs) and packet buffers from protected mode to the Global DOS Memory area. From there, the data can be accessed by IPXODI and passed up the client protocol stack.
Another VxD Novell engineers wrote for NetWare clients is VNETWARE.386. The purpose of this VxD is similar in nature to VIPX.386. But rather than virtualizing IPX, VNETWARE virtualizes the INT 21h and INT 2F input calls from DOS and passes this information to the NETX or VLM shell.
In enhanced mode Windows, all Windows applications run from the same System Virtual Machine (VM). Each time a DOS box is opened, another VM is made from a copy of the System VM that Windows is running in. The Windows VMM allocates a different area of memory for each DOS box that is opened. VNETWARE.386 virtualizes the VLMs or NETX and makes the DOS box think it has its own copy of the VLMs/NETX running in that session. Therefore, VNETWARE.386's primary responsibility is to guarantee that the correct NCP requests are returned to the correct Virtual Machine.
Figure 10: Listing of NetWare DLLs, DRVs, and VxDs.
Category
|
File Name
|
Description
|
Dynamic Link Libraries |
NWCALLS. DLL |
Provides APIsfor NCP communication between the NetWare server and Windows workstation |
NWGDI.DLL |
Provides NetWareGraphical Device Interface library |
|
NWIPXSPX.DLL |
Provides functioncalls for IPX/SPX communication |
|
NWLOCALE.DLL |
Provides APIsfor localization and internationalization |
|
NWNET.DLL |
Provides networkAPI support for NetWare Directory Services |
|
NWPSRV.DLL |
Provides printserver services APIs |
|
Drivers |
NETWARE.DRV |
Serves as NetWareClient Winnet driver/Network provider interface |
Virtual Device Drivers |
VIPX.386 |
Virtualizes the IPX/SPX protocol toemulate IPXODI TSR support for multiple DOS virtual machinesin Windows enhanced mode |
VNETWARE.386 |
VirtualizesVLM/NETX and provides NCP buffer managementto support multiple DOS virtual machines |
About NetNotes
Editor's Note: "NetNotes" is a section of Novell Applications Notes dedicated to providing technical tidbits to help you work with NetWare more effectively. This section presents a mixture of tips and tricks, little known facts, technical support questions and answers, suggestions from NetWire and other sources, survey data, humorous observations, and other items of interest to NetWare administrators, programmers, and users. We welcome reader submissions to the "NetNotes" section (no technical supportquestions, please). If you have something you'd like to contribute, send it to Novell in one of the followingways: |
E-mail: kneff@novell.comor eliebing@novell.com |
Mail: Managing Editor,Novell Application NotesNovell, Inc.MS ORM E-2111555 North Technology WayOrem, UT 84097 U.S.A. |
Fax: (801) 222-5577 |
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.