home *** CD-ROM | disk | FTP | other *** search
-
- NOVELL TECHNICAL INFORMATION DOCUMENT
-
- TITLE: Deadlocks with Novell NetWare and Windows
- DOCUMENT ID: TID021978
- DOCUMENT REVISION: C
- DATE: 11JAN95
- ALERT STATUS: Yellow
- INFORMATION TYPE: Symptom Solution
- README FOR: NA
-
- NOVELL PRODUCT and VERSION:
- NetWare Client for DOS/MS Windows 1.2
-
- ABSTRACT:
-
- These document discusses updates that resolve problems when using
- Windows 3.x or Windows for Workgroups 3.11 on a Novell network.
- The symptom is a blank screen with a blinking underline curser in
- the upper-left-hand corner of the screen and the workstation
- hangs.
-
- -----------------------------------------------------------------
-
- DISCLAIMER
- THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO
- NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY
- THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS
- DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT
- OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
- -----------------------------------------------------------------
-
-
- ADDITIONAL CONFIGURATION
-
- Third-Party Product and Version:
-
- Windows 3.x
- Windows for Workgroups 3.x
-
-
- SYMPTOM
-
- The symptom is a blank screen with a blinking underline cursor in
- the upper-left-hand corner of the screen and the workstation
- hangs. This may happen at any time while in Windows, launching a
- DOS box, using a Windows application or exiting Windows.
-
- The following is a list of causes/solutions that Novell has
- isolated that can cause/remedy the symptom described above.
-
-
- CAUSE
-
- IPXODI.COM had a problem in SPX. During a retry, SPX would jump
- to invalid memory causing an invalid opcode exception in v86 mode
- only when SPX is being used. This usually manifests itself as a
- reboot, hung machine, or blank screen with cursor in upper-left
- corner.
-
- CAUSE
-
- LSL.COM had an issue that was GetStackECBPrescanIsPresent
- destroyed the return Flag when an ECB was given. The symptom of
- this problem would most likely manifest it self by a workstation
- hang when using a protocol stack that expects to get an ECB from
- the LSL under a heavy load.
-
- CAUSE
-
- LSL.COM also had a problem with the "Do Send for Windows" code
- that needed a "Start and End Critical Section" call added.
-
- CAUSE
-
- An incorrect system configuration including memory management.
-
- CAUSE
-
- Any I/O, memory, or IRQ conflicts may cause this problem.
-
- CAUSE
-
- Using third-party device drivers or terminate-and-stay-resident
- (TSR) programs.
-
- CAUSE
-
- Lan Card MLID driver's misuse of ECB buffers. (Update ODI MLIDs
- as a standard trouble shooting tip)
-
- CAUSE
-
- Third party protocol stacks, such as TCPIP.
-
- CAUSE
-
- VIPX.386 is a Windows 3.x virtualization driver for IPXODI.COM
- driver that was enhanced jointly by Novell and Microsoft. It
- virtualizes requests to the globally loaded IPX driver. When a
- request is made to IPX, VIPX will allocate a request buffer in
- the system's global memory, copy the original request to the
- global buffer and give the global request to IPX. When the
- global request completes, IPX will call VIPX. VIPX will then
- copy any results back to the original request buffer and call the
- application that submitted the request.
-
- CAUSE
-
- Some Windows applications have been found to create the symptom
- if when exiting Windows the application is running in the
- background in a minimized state. If this occurs, close all
- applications before leaving Windows.
-
- CAUSE
-
- There are occasions when using a WINSTART.BAT file (which is
- created by the user and placed in the Windows directory) may also
- cause Windows to hang when exiting Windows. Avoid a WINSTART.BAT
- file if the symptom persists.
-
-
- CAUSE
-
- Microsoft has a patch called VTDA.386 for their Windows 3.1 VTD
- (Virtual Timer Device). VTDA.386 is a obtainable from Microsoft.
- Their BBS number is 206-936-6735 and the file to download is
- WW0863.EXE.
-
- *Note: Windows 3.1 was refreshed to 3.11. In the update, VTDA.386
- is made available in the box. This patch is installed by default
- if you select NetWare in the Windows SETUP option. This also
- applies to Windows for Workgroups 3.11 users.
-
-
- Version Compatibility with Dedicated IPX
- ----------------------------------------
- Novell officially ceased maintenance on the dedicated IPX driver
- (IPX.OBJ) version 3.10 dated 11-21-91. The last version of VIPX
- to explicitly support that driver is 1.10. The current version
- of VIPX supports IPXODI.COM only.
-
- Packet Size Limitations
- -----------------------
- VIPX.386 will only virtualize packets that are 8000 (decimal)
- bytes or less. Any DOS and Windows IPX or SPX applications that
- use networks with a physical packet size greater than 8000 bytes
- may not work with VIPX.386. For example, IBM Token Ring can be
- configured to run with 16 KB packets. A request by a DOS or
- Windows IPX application to send a 16 KB packet will be truncated
- to 8000 bytes. On the other hand, any 16 KB packet that is
- received by the LAN driver will be dropped because VIPX cannot
- allocate a packet big enough to handle it.
-
- Memory Manager Limitations
- --------------------------
- When a request is passed up from IPX, VIPX will immediately test
- the request buffer to see if it is in global memory. If it is in
- global memory, the request will be passed back down to IPX
- without any virtualization. For example, a TSR loaded before
- Windows is considered to be in global memory. If that TSR calls
- IPX, VIPX will test the requests and pass them back down to IPX.
- This is done because there is no need to virtualize requests that
- are already global.
-
- The use of UMA memory complicates the test for global memory.
- There are two basic scenarios.
-
- The first scenario is when a TSR has been loaded high before
- Windows was loaded. In this case, IPX requests will come from
- global UMA memory. VIPX will simply pass these requests back
- down to IPX.
-
- The second scenario is when a TSR is loaded high in a Windows
- DOSBOX. In this case, IPX requests will come from local UMA
- memory. VIPX will virtualize these requests.
-
- Some memory managers test for global UMA memory and will work
- properly under both scenarios. However, other memory managers
- exist that do not work properly under Windows. With these
- drivers, all local DOSBOX UMAs look as if they are GLOBAL UMAs.
-
- In the case of the second scenario when a TSR calls IPX, VIPX
- will test the request buffer and think that it is in global UMA
- memory when it is really in LOCAL UMA memory. As a result, VIPX
- will pass a local ECB to IPX without virtualization. The normal
- result of this is a hung machine or data corruption.
-
-
- SOLUTION
-
- Novell strongly recommends that you update your dedicated IPX
- driver with IPXODI.COM v2.12 or higher, included in VLMUP2 .EXE,
- when using versions of VIPX later than 1.10.
-
- Because of the problems with LSL.COM, Novell also recommends that
- you update your LSL.COM to v2.05 or higher. This version is also
- available in VLMUP2.EXE in the NOVFILES forum of Compuserve.
-
- If you are using third-party memory managers and hang, do not
- load TSRs using the IPX interface (including IPX itself) high.
- Load these in conventional memory only.
-
- Files Needed: Size Date Version Location Owner
- ================================================================
- VIPX.386 23855 05-23-94 1.19 WINDR2.EXE Novell
- IPXODI.COM 39353 10-31-94 3.01 VLMUP2.EXE Novell
- LSL.COM 18313 10-11-94 2.14 VLMUP2.EXE Novell
- VTDA.386 xxxxx xx-xx-xx x.xx WW0863.EXE Microsoft
-
- Installation Instructions:
-
- 1. Rename or backup the old VIPX.386, IPXODI.COM, and LSL.COM
- files.
-
- 2. Copy IPXODI.COM and LSL.COM to where the network board's
- software is initialized.
-
- 3. Copy VIPX.386 to your WINDOWS\SYSTEM directory.
-
- 4. Virtualize the network board's IRQ in the [VIPX] section of
- the SYSTEM.INI if using IBM LAN SUPPORT. (See Specialized
- Configuration Parameters below for instructions)
-
- 5. Put TimerCriticalSection=10000 in the [386Enh] section of the
- SYSTEM.INI.
-
- 6. Download, and implement the VTDA.386 driver from Microsoft as
- documented in their README file.
-
- 7. Reboot the machine and load the ODI drivers.
-
- 8. Enter Windows.
-
-
- Solution Specifics:
-
- Specialized Configuration Parameters
- ------------------------------------
-
- Under most circumstances, VIPX will work fine under the default
- configuration. However, there may be some applications that
- require custom configuration of the driver. This following is a
- list of SYSTEM.INI parameters that can be used to configure VIPX:
-
- [VIPX]
- VipxMappingPages =[number of 4K pages] (default = 16)
- VipxFailOverSizedPackets =[ON|OFF|TRUE|FALSE] (default = OFF)
- VirtualizeIrq[0-F] =[ON|OFF|TRUE|FALSE] (default = OFF)
-
- VIPX Parameters
-
- VipxMappingPages
- ----------------
- This is the number of pages that VIPX can use to globalize
- requests to the global IPXODI.COM driver. VIPX is not absolutely
- guaranteed to have all of these pages available at any one point,
- because this is the requested number of pages for shared global
- mapping that VIPX makes to the Windows VMM at initialization
- time.
-
- VipxFailOverSizedPackets
- ------------------------
- This parameter tells VIPX to fail any requests that require more
- than the maximum allowed globalization size. The actual maximum
- will vary according to the media the user is using. The absolute
- maximum is 8000 (decimal) bytes. With media that have smaller
- packets than 8000 bytes, the maximum allowed size is the maximum
- packet size that can be put onto the media.
-
- VirtualizeIrq[0-F]
- ------------------
- VIPX v1.15 or greater avoids a deadlock between the machine and
- network board by virtualizing the network board's IRQ. With ODI
- and dedicated IPX (IPX.OBJ) drivers, VIPX will automatically read
- the configuration of the network board from the driver and
- virtualize the selected IRQs. However, when using the IBM LAN
- Support Program with SLANSUP.OBJ or LANSUP.COM, the LAN IRQ is
- not readable from the driver. The only way to get this
- information is to read the network board hardware itself. The
- problem with doing this is that the hardware can be Token Ring,
- PCN2 or Ethernet. VIPX must now be aware of many different
- hardware configurations. Instead of this, VIPX requires the IBM
- LAN Support user to specify the network board's IRQ in the [VIPX]
- section of the SYSTEM.INI. IRQs range from 0 to F (hex). An
- example is listed below:
-
- [VIPX]
- VirtualizeIrq2=TRUE
- VirtualizeIrq3=TRUE
-
- In this example, VIPX will virtualize both IRQ 2 and IRQ 3. VIPX
- can virtualize up to four different LAN IRQs. The reason for
- virtualizing multiple IRQs is to allow other LAN boards and
- protocols to be installed on the same PC and prevent them from
- deadlocking the machine. For example, you may have IPX running
- through an NE2000 board on IRQ 3 and TCP/IP running through to an
- IBM Token-Ring board on IRQ 2.
-
- VIPX.386 v1.18 included the two following changes:
-
- 1. This file corrects a possible problem with virtualizing the
- network board's interrupt line (IRQ) setting. The Virtualization
- API returns a carry clear (OK) when the IRQ handle is 0. Now,
- VIPX.386 will not virtualize the IRQ if the IRQ handle is 0.
- Also a code was added to specify which VM (Virtual Machine)
- "owns" a virtualized IRQ.
-
- 2. In VIPX.386, a comparison for the VM handle for an AES ECB
- in the GLOBAL ECB was added. VIPX.386 also verifies the VM
- handle for an AES ECB in a condition not previously considered.
-
- VIPX.386 v1.19 includes the previous two changes plus three
- additional changes:
-
- 1. A changed was made to force Windows applications to open
- only long-lived sockets.
-
- For example, if you ran a DOS BOX with RCONSOLE with v1.18, it
- would allocate a short-lived socket; and if this DOS box was
- terminated, VIPX would overwrite an area that caused Windows to
- trap with a black screen and flashing cursor. VIPX v1.19 fixes
- this issue.
-
- 2. This patch address an issue with a TSR (globally loaded)
- that needs to open sockets after Windows is loaded. Right now,
- v1.18 closes all sockets, opened after Windows is loaded, when
- exiting Windows.
-
- A fix was made to check for the KeepLongLivedSocketsOpen
- parameter. This parameter is set to OFF by default. If this
- parameter is set to ON when an Open Socket operation is issued
- from V86 mode, the socket will be considered global and will not
- be closed when exiting Windows. The syntax to change the default
- from OFF to ON needs to be added to the end of SYSTEM.INI file as
- follows:
-
- [VIPX]
- KeepLongLivedSocketsOpen=[TRUE|FALSE|ON|OFF] default=FALSE
-
- 3. This patch resolved an issue related to Virtualizing LAN
- IRQs.
-
- For example, when exiting enhanced mode Windows back to DOS,
- sometimes the cursor will flash in the upper left hand corner and
- not return back to the DOS prompt.
-
- With this update the releasing of a Virtualized IRQ is restored,
- allowing COMMAND.COM to be reloaded, and the SYSTEM to return to
- the DOS prompt.
-
-
- TimerCriticalSection
- --------------------
- As of version 1.15 of VIPX, TimerCriticalSection is required to
- be set on. The recommended setting is as follows:
-
- [386Enh]
- TimerCriticalSection=10000
-
- The reason for this parameter is to avoid a deadlock with the LAN
- IRQ Virtualization code. See "VirtualizeIrq[0-F]" section.
-
- ================================================================
- LSL.COM
-
- Commandline Switches:
-
- Valid switches: U, F, ?, H, C=
-
- Only the "U, ?, C=" are documented in the help.
-
- U Used to unload LSL.
-
- ? Used for Help.
-
- F Used to force the unload.
-
- H Used as an equivalent to "?" switch, and is used by
- many of Novell's other utilities.
-
- C= Used to change the path or filename of the configuration
- file. The "C=" switch is the only two-letter switch that is
- valid, Custom Configuration Files. When using the "C="
- command-line switch, the LSL first tries the [path]\filename as
- given. If the file is not found, then the filename is searched
- for in the directory where the LSL was loaded from; and if it
- still cannot be found, it looks in the current working directory.
- If all these efforts fail, then the LSL reverts back to looking
- for a "NET.CFG" file in the directory where the LSL was loaded
- from then in the current working directory. The filename is
- considered valid even if the path was incorrect. After parsing
- the Configuration file, the LSL displays the relative path of
- the Configuration file that was parsed.
-
-
- ================================================================
- IPXODI.COM
-
- Command line Switches:
-
- Valid switches: /?, /D, /A, /C=, /U, /F
-
- ? Used for help screen.
-
- D Used for Eliminate Diagnostic Responder; reduces size by 3
- KB.
-
- A Used for Eliminate Diagnostic Responder and SPX; reduces
- size by 9 KB.
-
- PLEASE NOTE: Disabling SPX will mean that SPX applications (such
- as RPRINTER, BTRIEVE, RCONSOLE, or NetWare for SAA STRNRTR) will
- not be supported on this workstation.
-
- C= Used to change the path or filename of the configuration
- file. "C=" is the only two letter switch that is valid. If the
- *.CFG file used does not exist a message will be displayed that
- the standard NET.CFG file will be used instead.
-
- U Used to unload.
-
- F Used to force the unload.
-
-
- -----------------------------------------------------------------
-
- Any trademarks referenced in this document are the property of
- their respective owners. Consult your product manuals for
- complete trademark information.
- -----------------------------------------------------------------
-
-
-
-