

                              HOTFIXES.TXT
                              ------------


This file contains the text from the hotfixes included in Service
Pack 5B for Citrix WinFrame Version 1.7.


Contents
--------
A.  Hotfixes
B.  Client Updates


A.  Hotfixes
------------
1.  Corrects a problem where the NetWare Redirector could send
    oversized frames to a NetWare server. This could cause the NetWare
    server to abend. For further information, refer to Microsoft
    Knowledge Base article Q142675.
    [From Hotfix SE170001]

2.  Corrects a problem seen in the Performance Monitor utility where
    Gateway Service for NetWare connection counters reflected an
    incorrect number of NetWare connections.
    [From Hotfix SE170001]

3.  Corrects a problem where account operators were not able to update
    WinFrame user configuration parameters from User Manager for
    Domains.
    [From Hotfix SE170002]

4.  Fixes a problem where applications could cause arbitrary lines to
    be drawn across the WinStation client screen. This is caused by
    applications that draw to window coordinates less than -32767. This
    problem was reproduced with the CAD application Microstation 95
    Version 05.05.01.65 Windows x86.
    [From Hotfix SE170003]

5.  Resolves the following hung WinStation problems:

    A. Kernel trap occurs during a WinStation login/logoff.
    B. IPX WinStation hangs during login/logoff.
    C. A trap occurs in CSRSS during a WinStation login/logoff.
    D. A WinStation faults with an access violation.
    [From Hotfix SE170006]

6.  Fixes problems where applications utilizing Windows timers would not
    update correctly. Symptoms included (but were not limited to):

    A. CLOCK.EXE would not update the time displayed.
    B. Performance Monitor (PERFMON.EXE) would not update its display.
    C. You could not scroll continuously by holding the mouse button
       down on the scroll bar or scroll arrow.
    [From Hotfix SE170006]

7.  Fixes several memory leaks in the ICA Browser service.
    [From Hotfix SE170007]

8.  Corrects problems using modems with the WinFrame Activation Wizard.
    [From Hotfix SE170008]

9.  Fixes a problem with client persistent caching.

    NOTE: This feature requires WinFrame Client Version 3.00.324
          or later.
    [From Hotfix SE170008]

10. Fixes a memory leak in the print spooler.
    [From Hotfix SE17009]

11. Corrects a problem where applications that opened files on a
    NetWare server in DENY_READ and DENY_WRITE mode using DOS INT 21h
    function 3Dh would open the file with only DENY_WRITE set.
    [From Hotfix SE170010]

12. Corrects a problem with printing to NetWare NDS printers where
    "No such user" errors were generated.
    [From Hotfix SE170010]

13. Corrects a problem where IPX connection attempts would fail
    intermittently. Due to a timing problem, the IPX WinStation would
    be stuck in a "connq" state for some time. If the client ceased
    the connection attempt, the WinStation would eventually return to
    an "idle" state. The client would then be able to reconnect without
    incident.
    [From Hotfix SE170011]

14. Adds new functionality to security audit logging. The session ID
    has been added to the logon event messages in the security log. To
    record logon events in the security log, you must set the audit
    policy in User Manager to audit successful logon and logoff events.
    [From Hotfix SE170012]

15. Fixes a client COM port mapping problem where the server was not
    correctly interpreting an application's request for more data
    from a mapped client COM port.
    [From Hotfix SE170012]

16. The number of client printer pipe instances was hard coded to 10.
    This value can now be modified using the CLTPRINT.EXE utility
    provided with this hotfix.
    [From Hotfix SE170013]

17. Fixes a problem where DOS applications get the error "ALL PIPE
    INSTANCES BUSY". Pipe instances were being lost until there were no
    pipes to handle printer requests. This was because of a bug in the
    handling of error conditions with printer pipe connections. Certain
    error conditions would cause the print process to exit without
    releasing the printer pipe it was using.
    [From Hotfix SE170013]

18. Fixes a problem where all new IPX connection attempts would fail
    intermittently. IPX WinStations that were currently connected
    would remain connected. A problem was discovered in the protocol
    listener in that it would no longer recognize IPX connection
    attempts. Prior to this hotfix, the workaround was to stop the
    "Protocol Listener", "Protocol Advertiser", and "Client Network"
    services. This unloaded PSERVER.EXE. When the same services were
    restarted, the problem would resolve for some period of time.
    [From Hotfix SE170014]

19. This hotfix was updated to reflect that it replaces SE170001 and
    SE170010.
    [From Hotfix SE170015]

20. Corrects the problem where published applications could not be
    accessed through a TCP/IP firewall because of address translations
    performed by the firewall.

    Firewalls use IP address translation to convert public (Internet)
    IP addresses into private (Intranet) IP addresses. Public IP
    addresses are called "external" addresses because they are external
    to the firewall, whereas private IP addresses are said to be
    "internal" addresses.

    When a WinFrame client is configured for an IP "server location",
    it sends a directed UDP datagram to the "server location" IP address
    using port 1604. For communication to be successful between a
    WinFrame client and server, the firewall must be configured so it
    will pass UDP port 1604 packets. The "server location" is
    configured in Remote Application Manager under the Options, Settings
    menu.

    If a "server location" is specified, the WinFrame client contacts
    that server in order to discover the address of the ICA master
    browser. When the client is browsing, the ICA master browser
    returns the list of available servers and published applications.
    When the client is attempting to connect by server or published
    application name, the ICA master browser returns the address of the
    desired server or published application.

    Prior to this hotfix, the server acting as the "server location"
    could only return the internal IP address of the ICA master browser.
    The client was unable to communicate with the ICA master browser
    using the internal IP address because it was usually an invalid
    Internet address. With this hotfix, the server acting as the
    "server location" can return the external address of the ICA master
    browser to the WinFrame client. Likewise, when the client is
    connecting using a server or published application name, the ICA
    master browser returns the external IP address of the desired
    server or published application.

    This hotfix must be installed on all WinFrame servers that will be
    contacted by external clients. It must also be installed on the
    ICA master browser. For server farms, the ICA master browser must
    be running on one of the WinFrame servers in the farm and all the
    servers in the farm must be visible outside the firewall.

    Each WinFrame server must have its external address configured with
    the master browser. The external address is referred to as the
    WinFrame server's "alternate address". The ALTADDR.EXE utility
    included with this hotfix configures alternate addresses for each
    server. See "ALTADDR Usage" below for more information. ALTADDR
    stores alternate addresses in the Registry under the key:

    HKEY_LOCAL_MACHINE
     \System
      \CurrentControlSet
        \Services
          \ICABrowser
            \Parameter
              \AlternateAddress
                \TCP

    Alternate addresses are only supported for the TCP/IP protocol.

    Once the servers are configured, the external clients must be
    configured to request the alternate address from a server inside
    the firewall. Version 3.00.329 or later of the WinFrame Client is
    required in order for the client to request an alternate address
    from the server.

    To configure the client, edit the APPSRV.INI file on the client
    machine and add the line:

    UseAlternateAddress=1

    to the "[WFCLIENT]" section. This setting is a flag that instructs
    the client to request an alternate IP address. If this flag is added
    to the "[WFCLIENT]" section, the client requests the alternate IP
    address for every defined server connection. It also requests the
    alternate IP address when browsing WinFrame servers and published
    applications. This allows the client to browse across firewalls
    even when IP address translation is enabled on a firewall.

    You can also configure the client so that it requests the
    alternate IP address on a case-by-case basis. Instead of adding
    the "UseAlternateAddress=1" flag to the "[WFCLIENT]" section, it
    can be added to each connection's section in APPSRV.INI. For
    example, suppose a given WinFrame Client connects to WinFrame
    servers on an Intranet. For these connections, the
    "UseAlternateAddress" flag should not be set to "1" because both
    client and server are behind a firewall. Occasionally the same
    client also connects to other WinFrame servers over the Internet.
    These WinFrame servers are behind different firewalls that are
    using IP address translation. In this scenario, the client should
    only request alternate addresses from the servers across the
    Internet, not from servers on the Intranet.

    To configure a client for this scenario, add the
    "UseAlternateAddress=1" flag to the section in the APPSRV.INI file
    on the client machine that corresponds to the server description in
    Remote Application Manager. Remove the "UseAlternateAddress=1" flag
    from the "[WFCLIENT]" section (or set it to "0" (zero)).

    Alternatively, you can add the "UseAlternateAddress=1" flag to the
    "[WFCLIENT]" section and then override the setting for those server
    connections that are on the same side of a firewall as the client.
    This is useful in a scenario where clients primarily connect to
    servers over the Internet but occasionally connect to servers on
    their Intranet. Add "UseAlternateAddress=0" to each connection
    section for local Intranet connections to override the global
    setting.
    [From Hotfix SE170016]

21. Corrects the problem where a WinFrame Client could not enumerate
    WinFrame servers on another subnet if the server has two network
    interface cards (NIC) and the client had a route to only one NIC.
    Prior to this hotfix, the WinFrame server would sometimes report
    the wrong address to the client.
    [From Hotfix SE170016]

22. Corrects the problem where, for servers with multiple NICs, the ICA
    browser would report WinStations for all cards even if they were
    configured for only a single NIC.
    [From Hotfix SE170016]

23. Corrects the problem where users could not browse IPX, or connect by
    name with IPX if there was no NetWare server on the same subnet as
    the WinFrame server. If no other servers exist on an IPX network,
    by default WinFrame sets its IPX external network number to
    "0" (zero). Prior to this hotfix, the ICA Browser was unable to
    accept an IPX network address of zero. Refer to Microsoft
    Knowledge Base Article Q150546 for more information about the IPX
    external network number.
    [From Hotfix SE170016]

24. Corrects a problem where deleting WinStations was not correctly
    reflected in the browser count. After deleting all of a protocol's
    WinStations, they would still be reported by the browser.
    [From Hotfix SE170016]

25. Corrects a problem where when running a Microsoft Power Point slide
    show with wipe left or wipe right slide transition, stripes appear,
    corrupting the slide.
    [From Hotfix SE170017]

26. Corrects a problem where reconnecting a 32-bit client with
    persistent cache disabled intermittently caused a client trap. If
    the user disconnected and then reconnected, the client (WFICA32.EXE)
    would trap after reconnecting. This was caused by the server
    incorrectly telling the client to turn on the persistent cache.
    (This fix does not require a change to the client because the
    problem was caused by the server's communication to the client.)
    [From Hotfix SE170017]

27. Changes the behavior of a domain member during login. Instead of
    always contacting the primary domain controller (PDC), the system
    now contacts the closest domain controller (primary or backup) and
    only contacts the PDC for NetWare password synchronization.
    [From Hotfix SE170018]

28. Corrects a problem where files in Macintosh volumes disappear from
    Macintosh clients. Refer to Microsoft Knowledge Base article Q164138
    for more information.
    [From Hotfix SE170019]

29. Fixes a blue screen problem where the system would halt with the
    message: "STOP: 00000019 (0x00000003, 0x80143E70, 0x,00000000,
    0x00000000)". This problem was related to the NTFS driver. Refer to
    Microsoft Knowledge Base article Q156731 for more information.
    [From Hotfix SE170020]

30. Updated SE170015 to include latest HOTFIX.EXE.
    [From Hotfix SE170021]

31. Updated SE170002 to include latest HOTFIX.EXE.
    [From Hotfix SE170022]

32. Corrects a problem where WinFrame was unable to logon more than 101
    concurrent users using mandatory user profiles.
    [From Hotfix SE170023]

33. Fixes a problem that may cause a WinStation to hang when printing.
    [From Hotfix SE170024]

34. Corrects window creation problems that may show up as any of
    the following:

    A. Improper window layering. Windows are stuck in the background
       and are not allowed to come to the top.

    B. Title bars are distorted. Minimize/maximize buttons are missing
       and/or drawn with inactive title bar color regardless of actual
       focus.

    C. Tool bars do not work correctly. Tool tips do not appear and/or
       pull-down windows appear behind main window.
    [From Hotfix SE170025]

35. Fixes a problem with AUDITLOG. The program would trap if Hotfix
    SE170012 was installed and the /detail option was used.
    [From Hotfix SE170026]

36. [SE170028 was a rebuild of SE170026]

37. Fixes a problem where a Dr. Watson error would occur when the
    messenger service was stopped, re-started and then stopped again.
    Following this error, the system would start receiving RPC failures.
    [From Hotfix SE170029]

38. Fixes a problem where administrators from trusted domains were not
    permitted to run the Application Configuration utility (APPCFG.EXE).
    For example, suppose there are three WinFrame servers named WF1,
    WF2, and WF3. All three WinFrame servers are member servers in a
    "resource" domain called WFDOMAIN. The WFDOMAIN trusts an "accounts"
    domain called MASTER. The MASTER domain does not trust the WFDOMAIN.
    This is called a "one-way" trust relationship. The WinFrame
    administrator would like to configure published applications for the
    WinFrame servers in the WFDOMAIN so that users from the MASTER
    domain have permission to access these published applications. With
    this hotfix applied, there is no need to configure a two-way trust.
    Using a one-way trust, you are able to log onto the WinFrame server
    WF1 as an administrator from the MASTER domain and configure
    published applications for all three WinFrame servers in the
    WFDOMAIN that users from the MASTER domain can access.

    In order to accomplish this task, the administrator's user account
    from the MASTER domain (or global group in the MASTER domain that
    the user account is a member of) must be added to the local
    "Administrators" group for the trusted domain (in this example,
    WFDOMAIN) and to the local "Administrators" group in each WinFrame
    server's local accounts database.

    The following are related error messages:

    Error #1: "You do not have Domain Administrator privileges. You may
       administer applications on the local machine for local users and
       groups only."

    Situation: When APPCFG.EXE is launched, if the user account is not
       a member of the local "Administrators" group for the domain but
       is a member of the WinFrame server's local "Administrators"
       group, you will receive this error message.

    Resolution: Add your user account to the local "Administrators"
       group for the domain.

    Error #2: "You have insufficient privilege to save the '<appname>'
       application to the '<servername>' server. The server will be
       removed from the application configuration."

    Situation: If the user is a member of the local "Administrators"
       group for the domain but is not a member of a WinFrame server's
       local "Administrators" group, this error message is displayed
       when APPCFG.EXE attempts to configure the WinFrame server for a
       published application.

    Resolution: Add the user account to the local "Administrators"
       group for each WinFrame server that will be configured for the
       published application.

    Error #3: "You must have Administrator rights to run this
       application."

    Situation: If the user account is neither a member of the local
       "Administrators" group for the domain nor a member of the local
       "Administrators" group for the WinFrame server from which
       APPCFG.EXE is launched, this error message is displayed when
       APPCFG.EXE is launched.

    Resolution: Add the user account to the local "Administrators"
       group for the domain AND to the local "Administrators" group for
       the WinFrame server that is running APPCFG.EXE.
    [From Hotfix SE170030]

39. Fixes a problem where applications that utilize OLE automation did
    not work. This hotfix adds the capability to register COM objects as
    system global. The COM class ID can be added to the Registry under

    HKEY_LOCAL_MACHINE
     \Software
      \Citrix
       \Compatibility
        \CLSID
         \{classID}

    with the value fSystemGlobalClass:REG_DWORD set to 0x1. This object
    will now only be created once per server and can be seen by all
    WinStations.
    [From Hotfix SE170031]

40. This hotfix updates the modem list for async WinStations. Note
    that this hotfix updates CTXMODEM.INF. The modems used for the
    Remote Access Service (RAS) are not updated by this hotfix.

    The modems added by this hotfix are displayed with the string
    " - CTX" toward the bottom of the modem list in WinStation
    Configuration.
    [From Hotfix SE170033]

41. Fixes a problem where Personal Oracle 7 would not function correctly
    when run from a WinStation. After this hotfix is applied, you must
    set two Oracle files "system global" using the following procedure:

    A. Double-click on the "Stop Database" icon. This stops all
       Oracle services.

    B. Start a command prompt.

    C. Change to the drive and directory where the Personal Oracle 7
       executables are installed. By default this directory is
       C:\ORANT\BIN.

    D. Type the following commands:

       REGISTER /SYSTEM ORASPAWN.DLL
       REGISTER /SYSTEM SQLNTTT.DLL

    E. You MUST start the database on the WinFrame console by
       double-clicking on the "Start Database" icon. You cannot
       start the database from a WinStation.
    [From Hotfix SE170034]

42. Fixes the problem where the initial program was started with high
    priority when it should have been started with normal priority.
    [From Hotfix SE170035]

43. Fixes the problem where redirecting output from the "dir" command to
    the client COM port failed with the message: "The process cannot
    access the file because it is being used by another process."
    [From Hotfix SE170035]

44. Fixes the problem where users could not login to a published
    application if the primary domain controller (PDC) was down.
    [From Hotfix SE170036]

45. Adds the ability to the DOS client to poll the COM ports and send
    incoming data to the server asynchronously. NOTE: This feature
    requires DOS Client Version 3.00.332 or later.
    [From Hotfix SE170037]

46. Fixes the problem where NetWare password synchronization would fail
    when logging into a published application.
    [From Hotfix SE170037]

47. Fixes the problem where initial programs that existed on network
    mapped drives could not be launched because the network drives were
    not yet mapped.
    [From Hotfix SE170039]

48. Fixes the problem where an application called Navision hung when the
    user double-clicked the application's scroll bar.
    [From Hotfix SE170039]

49. Fixes the problem where the check box "Only run published
    applications" in the WinStation Configuration utility did not
    function.
    [From Hotfix SE170039]

50. Corrects a problem seen in some applications when the application
    attempted to open the clipboard. The open clipboard would fail due
    to contention with WFSHELL.EXE, a Citrix utility that enables cut
    and paste operations among client and server applications. This
    problem was reproduced using Microsoft Excel 97 but can be seen
    with other applications.

    With this hotfix, it is now possible to configure the server in such
    a way that if an open clipboard call fails, the system will retry
    the open clipboard a specified number of times or until the open is
    successful. It is also possible to configure a delay in milliseconds
    between each clipboard open retry. The following procedure describes
    how to enable this feature for a given application:

    A. Create the Registry key:

       HKEY_LOCAL_MACHINE
        \Software
          \Citrix
           \Compatibility
            \Applications
             \<app name>

       where <app name> is the name of the application without
       the extension.

    B. Add the following Registry values to the above Registry key:

       OpenClipboardRetries: REG_DWORD: 0x20
       OpenClipboardDelayInMilliSecs: REG_DWORD: 0x50
       Flags: REG_DWORD: <num>

       where <num> is the application type. Supported values are:

       DOS application               0x1
       OS/2 application              0x2
       Windows 16-bit application    0x4
       Windows 32-bit application    0x8
       Win16 and Win32 applications  0xC
       Any version                   0xF

    C. When testing Excel 97 in-house, the above settings worked well
       for Excel (32 retries with an 80 millisecond delay between each).
       If applications on the WinFrame client and the WinFrame server
       are actively accessing the clipboard simultaneously, it may be
       necessary to increase the settings for "OpenClipboardRetries"
       and "OpenClipboardDelayInMilliSecs".

    D. The application must be restarted in order for the new settings
       to take effect.

    Note that this hotfix will create Registry keys for "excel" and
    "wfshell" when the hotfix is installed.
    [From Hotfix SE170040]

51. Fixes a problem where in some cases, client printers were not
    autocreated when the name of the server printer driver differed
    from that of the client driver. Some HP LaserJet 4 printers were
    autocreated but some capabilities such as 600 dpi printing were
    unavailable.

    When a client printer is autocreated, the only parameter that is
    passed to the server is the printer name string. Unfortunately,
    some printer manufacturers do not give their printers the same name
    across different operating systems. In other words, a Windows 95
    client may attempt to autocreate a printer using a name that does
    not exist in the Windows NT operating system. This may cause
    errors in the printer settings, resulting in printing problems.

    This hotfix provides a mechanism to map the client printer to its
    equivalent on the server. With this hotfix, the mechanism for
    client printer autocreation is dependent upon three files:

    %systemroot%\system32\printer.inf
    %systemroot%\system32\ctxprnt.inf
    %systemroot%\system32\ctxuprn.inf

    PRINTER.INF: This file contains the instructions for installing
    the printers that shipped with WinFrame. This file should never
    be modified by users.

    CTXPRNT.INF: Starting with this hotfix, CTXPRNT.INF will be
    supplied by Citrix Systems. This file "maps" client printer names to
    the printer names defined on the WinFrame server. This file should
    not be modified by users because it may be overwritten by later
    hotfixes, service packs, or upgrades. The file included with this
    hotfix supports most of the HP LaserJet 4 and 5 printer families.

    CTXUPRN.INF: Like CTXPRNT.INF, this file may also be used to map
    client printer names to server printer names. This file may be
    manually updated by the WinFrame administrator. This hotfix
    includes the file CTXUPRN.TXT, which is a template for CTXUPRN.INF.
    CTXUPRN.INF takes precedence over CTXPRNT.INF, so an administrator
    may override the default settings provided. Printer strings
    prefixed by the client name take precedence over those without the
    client name.

    CTXPRNT.INF and CTXUPRN.INF are in the following format:

      [Identification]
              OptionType = PRINTER
      [ClientPrinters]
      ;
      ; client printer                server printer
      ;
      "Apple LaserWriter"           = "Apple LaserWriter Plus V38.0"
      ;
      ; all the clients who have HP printers have 4Si printers
      ; except client_1 who has a 4Si MX
      ;
      "HP LaserJet 4Si/4Si MX"           = "HP LaserJet 4Si"
      "client_1#HP LaserJet 4Si/4Si MX"  = "HP LaserJet 4Si MX"

    Note that semicolons are used for remarks and are ignored.
    [From Hotfix SE170041]

52. Fixes a problem within WinStation Administration where when a
    WinStation was selected in the left pane and a process was selected
    in the "Processes" tab of the right pane, the "Terminate" option on
    the "Actions" pull-down menu did not terminate the process. The
    termination process would only function if the server was selected
    in the left window pane and a process was selected in the
    "Processes" tab of the right pane.
    [From Hotfix SE170043]

53. Augments the fix from SE170034. A different fix was made for the
    Personal Oracle 7.0 issue described above. You must still perform
    the procedure described in SE170034.
    [From Hotfix SE170044]

54. Corrects the problem where the "Overall Bias" value reported in the
    load balancing dialog list and the position of the slider in the
    load balancing adjustment dialog show the default value for this
    parameter, regardless of the actual value in the Registry.
    [From Hotfix SE170045]

55. Fixes a problem where WinAdmin would Dr. Watson upon launch if the
    name of a WinStation plus username on any displayed server was
    greater than 20 characters.
    [From Hotfix SE170046]

56. Fixes a problem where, if IPX was not installed, the Application
    Configuration utility (APPCFG.EXE) would fail to enumerate ICA
    gateways for the TCP/IP protocol.
    [From Hotfix SE170047]

57. [Skipped SE170048 through SE170059 inclusive]

58. Fixes a problem where, when a client tried to connect to a published
    application and there were no more licenses, the client would
    display an erroneous error message:

      Unable to contact the WinFrame Server Browser. Either your
      network is not functional, or you need to configure an
      address under Server Browsing, or the configured address
      is incorrect.

    This message was also displayed if the server was out of
    WinStations. Two new messages have been added to the WinFrame
    Windows Clients. In the case where the licenses have been
    exhausted, the following message is displayed by the WinFrame
    Windows Clients:

      Unable to connect to published application. No licenses are
      available.

    In the case where all WinStations are in use, the following
    message is displayed:

      Unable to connect to published application. No WinStations
      are currently available.
    [From Hotfix SE170060]

59. Updates to WFAPI.DLL required for the Citrix Server Software
    Developer's Kit (SDK).
    [From Hotfix SE170060]

60. Corrects a problem where a 16-bit application fails trying to read
    an .INI file from a user's Windows home directory when the home
    directory name is a long file name.
    [From Hotfix SE170061]

61. Corrects a problem where, when creating a new user, the WinFrame
    Profile Path was not being saved.
    [From Hotfix SE170062]

62. Corrects a problem where 16-bit and other polling applications got
    zero-byte reads from the client COM port, even if data was available.
    [From Hotfix SE170063]

63. Corrects a problem where WinStations would hang when being connected.
    [From Hotfix SE170063]

64. Corrects a memory access violation error that may have occurred
    when performing a directory search of a NetWare drive.
    [From Hotfix SE170064]

65. Corrects a problem where the NetWare Redirector was leaking
    non-paged memory. This led to allocation failures resulting in 8001
    errors being output to the system event log, which eventually
    required a server reboot.
    [From Hotfix SE170064]

66. Corrects a problem where printing to a network-connected printer
    would sporadically fail with obscure messages like "Bad Stub Data"
    or "Invalid Handle" or "Windows cannot print due to problems with
    current printer setup."
    [From Service Pack 5A]

67. Corrects a problem where EVENTLOG was crashing, causing Services
    to crash as well.
    [From Service Pack 5A]

68. Corrects a problem where the Logon date displayed by QUSER.EXE for
    users logging in after the year 2000 was incorrect.
    [From Service Pack 5A]

69. Corrects a problem with reconnecting to disconnected sessions.
    [From Service Pack 5A]

70. Corrects the problem where WinStation Administration displays the
    wrong date for years past 1999 (i.e., 100 for 2000, 101 for
    2001, etc.).
    [From Service Pack 5A]

71. Corrects a problem where Application Configuration was slow in
    enumerating a large number of users in a domain (12,000 users took
    two hours).
    [From Service Pack 5A]

72. Corrects a problem where, in an FTP connection, performing an "ls"
    command would display the wrong date for files created after the
    year 2000.
    [From Service Pack 5A]

73. Corrects a problem where User Manager wouldn't allow 2/29/00 as an
    expiration date for a user account.
    [From Service Pack 5A]

74. The "Make Browser Broadcasts to LAN Manager 2.x Clients" check box
    always comes up turned on, even when the current setting for this
    option is off. This can be found in Control Panel, Network,
    Installed Network Software, Server, Configure...
    [From Service Pack 5A]
    
75. Corrects a problem with dial-back found in SP5A.
    [From Service Pack 5B]
    
76. Corrects a problem with shadowing found in SP5A.
    [From Service Pack 5B]
    
77. Corrects a problem pertaining to the client auto-logon feature.
    [From Service Pack 5B]


B.  Client Updates
------------------
The clients included with Service Pack 5B are Version 3.00.344, which
include all the functionality of the last shipped clients, 3.00.343. In
addition, these clients include fixes that will be listed as [From 
Service Pack 5B] in the descriptions, below.


========================================================================

WinFrame DOS Client (Version 3.00.344)

Replaces: DE170317, DE170323, DE000326, DE000327, DE000329,
          DE000330, DE000332, DE000340
Language supported: English (US)


Description
-----------

This service pack contains the complete WinFrame Client for DOS
(Version 3.00.344). This new client addresses the following issues:

 1. Adds basic client scripting capabilities (see "Configuring
    Scripting" below).
    [From Hotfix DE170323]

 2. The Add Device dialog box was not activated if the user attempted
    to add a new device within the Entry Properties dialog box. The
    following error was displayed instead: "A device name must be
    specified".
    [From Hotfix DE000327]

 3. Published applications could not be accessed through a firewall
    because of address translations performed by the firewall. With
    this hotfix, the WinFrame client is able to request the alternate
    (external) IP address when making connections to a WinFrame server
    inside a firewall. To support this feature, Hotfix SE170016
    (included in Service Pack 5B) must be installed on the WinFrame 1.7
    server (this functionality is currently unavailable for WinFrame 1.6
    servers). See the README.TXT from Hotfix SE170016 for information
    regarding server configuration. See "Configuring Clients to Use the
    Server's Alternate IP Address for Load Balancing and Application
    Publishing Across a Firewall" below for more information about
    client configuration.
    [From Hotfix DE000329]

 4. Files marked with the System attribute on a mapped client drive
    were inaccessible.
    [From Hotfix DE000330]

 5. When a TCP/IP "server location" was specified, the client did not
    use it. A broadcast was sent on the local subnet instead of sending
    a directed datagram to the specified "server location" address.
    [From Hotfix DE000330]

 6. The TCPBrowserAddresses section of the DOS client was being 
    ignored due to a lack of matching entries in the MODULE.INI file.
    [From Hotfix DE000330]

 7. Provides support for additional modems.
    [From Hotfix DE000330]

 8. Adds the ability to the DOS client to poll mapped COM ports and
    send incoming data to the server asynchronously. See "Configuring
    Clients to Use COM Port Polling" below.

    NOTE: This feature requires WinFrame 1.7 server Hotfix SE170037
          or its replacement (included in Service Pack 5B).
    [From Hotfix DE000332]

 9. When a DOS client tried to connect to a published application and
    there were no more licenses, the DOS client would display an
    erroneous error message:

       Transport Driver error (Browser 19)

    This message was also displayed if all WinStations for the
    transport type were in use. Two new messages have been added to the
    WinFrame DOS Client. In the case where licenses are exhausted, the
    following message is displayed by the WinFrame DOS Client:

       Transport Driver error (Browser 26)

    In the case where all WinStations for the transport type are in
    use, the following message is displayed:

       Transport Driver error (Browser 27)

    To support this feature, Hotfix SE170060 (included in Service
    Pack 5B) must be installed on the WinFrame 1.7 server.
    [From Hotfix DE000340]

10. Updated client for use with the Citrix Server SDK. Fixes problems
    allocating multiple virtual channels.
    [From Hotfix DE000340]

11. Corrects the problem where 16-bit and other polling applications
    would get zero-byte reads even if data was available.
    [From Service Pack 5A]

12. Properly reserves the virtual channels that were allocated for
    OEM partners.
    [From Service Pack 5A]
    
13. Updated client modem list.
    [From Service Pack 5B]


Configuring an Alternate TCP Port
---------------------------------
By default, the WinFrame server listens for ICA WinStation connections
on the well-known TCP port number 1494. With Service Pack 5B installed,
the TCP port number can be set to any value in the range 0-65535,
although it must not conflict with other well-known port numbers. If
the WinFrame server is using a different port number than the default
value of 1494, you must change the TCP port number that the WinFrame
client uses or TCP/IP connection attempts will fail. You can specify
the port number used by the WinFrame client in one of three ways:

 1.  In the "WinFrame Server" field of the WinFrame Client for DOS
     Entry Properties menu, you can enter the name or IP address of a
     Citrix server followed by a colon and the port number; for
     example: 128.255.44:1234 or www.winframe.com:1234, where "1234"
     is the TCP port number. This causes the WinFrame Client for DOS to
     connect to that WinFrame server using TCP port 1234. Connections to
     all other entries in the WinFrame client's server list use the TCP
     port number 1494.

 2.  Edit the APPSRV.INI file in the WinFrame client directory and add
     the setting "ICAPortNumber=xxxxx" to individual server sections.
     For instance, suppose that two WinFrame server connections are
     configured in the WinFrame client. One connection is configured
     with "HOMER" in the description field, while the other is
     configured with "BART" as the description. "HOMER" uses TCP port
     number 999, while "BART" uses TCP port number 888. The changes to
     APPSRV.INI would look like this:

     [HOMER]
     ...
     ICAPortNumber=999
     ...
     [BART]
     ...
     ICAPortNumber=888

 3.  To specify that all TCP/IP connections are to use an alternate
     TCP port number, edit the APPSRV.INI file in the WinFrame client
     directory and add the setting "ICAPortNumber=xxxxx" to the
     "[WFCLIENT]" section. For example:

     [WFCLIENT]
     ICAPortNumber=1234

     If this setting is added to the "[WFCLIENT]" section, all TCP/IP
     connections configured in the Remote Application Manager will
     attempt to connect using port 1234.

Use methods 1 or 2 instead of method 3 unless all WinFrame connections
will use the same ICA TCP port number. You must also use the ICAPORT
command-line utility to change the default TCP/IP port number on each
WinFrame server.


Client Scripting
----------------
The WinFrame clients that ship with WinFrame Version 1.7 support a
limited scripting language. This script language can be used to
negotiate asynchronous, X.25, or dial-up connections to a WinFrame
server. It can also be useful for connections that go through a
security device that requires additional authentication before starting
the ICA session. As soon as ICA traffic is detected, the script is
aborted and the WinFrame session is started. To view the progress of
the script, check the "Display terminal window when making Dial-In
Connections" checkbox in the preferences for the Remote Application
Manager session.

Add these commands to a text file using a text editor (for example,
Windows Notepad). The file can be any name valid for DOS (an 8
character filename with a 3 character extension); long filenames are
not supported. No user interface is provided for using these scripts.

To Configure Scripting:

1.  Edit the APPSRV.INI file and add the following lines to the
    [WFClient] section.

    ScriptDriver=SCRIPT.DDL
    ScriptDriverWin16=SCRIPTW.DLL
    ScriptDriverWin32=SCRIPTN.DLL
    ScriptFile=

2.  To attach a script file to a Remote Application, edit the
    APPSRV.INI file and add the following line to the section for
    the Remote Application:

    ScriptFile=<script path\filename>

    Example: Suppose you create a script file named X25.SCR in the root
    directory of C: for the Remote Application "MyHost". The changes
    would look as follows:

    [MyHost]
    ScriptFile=C:\X25.SCR

Script Commands:

   ;
      Comment; anything after the semicolon (to end of line) is ignored.

   BEEP
      Provide a bell sound for debugging purposes.

   EXIT
      Terminate and unload the scripting driver.

   SEND STRING "string"
      Send the characters in "string" as ASCII keystrokes.

   SET IGNORECASE [ON | OFF]
      Set case sensitive string compares for the WAIT command.

   WAIT RECEIVE [time]
      Wait for any character to be received; timeout optional.

   WAIT SILENCE time
      Wait for "time" seconds of silence.

   WAIT STRING "string" [time]
      Wait for "string" to be received; timeout optional.

   WAIT TIME time
      Wait for "time" seconds.


Configuring Clients to Use the Server's Alternate IP Address for Load
Balancing and Application Publishing Across a Firewall
---------------------------------------------------------------------
The ICA Browser service uses UDP port 1604. ICA browsing is used by the
ICA client to obtain a list of available Citrix ICA servers. Citrix ICA
server farms use the ICA browser service to balance ICA client
connections between servers.

The firewall must be configured to allow inbound UDP port 1604
connections to ICA servers for load balancing and ICA server browsing
to function correctly. If your firewall uses address translation on
TCP/IP packets, you must also install Hotfix SE170016 (included
with Service Pack 5B).

WARNING: Allowing untrusted access to the ICA Browser service entails
         some security risk. Only configure the firewall to pass ICA
         Browser data if load balancing and server browsing across a
         firewall are essential.

NOTE:    You cannot share licenses across a firewall or subnet.

Firewalls use IP address translation to convert public (Internet) IP
addresses into private (Intranet) IP addresses. Public IP addresses are
called "external" addresses because they are external to the firewall,
whereas private IP addresses are said to be "internal" addresses.

When a WinFrame client is configured for an IP "server location," it
sends a directed UPD datagram to the server location IP address using
port 1604. For communication to be successful between a WinFrame client
and server, the firewall must be configured so it will pass UDP port
1604 packets. The server location is configured in Remote Application
Manager by selecting Settings from the Options menu.

If a server location is specified, the WinFrame client contacts that
server to determine the address of the ICA master browser. When a user
creates a new entry, the list of available servers and published
applications is retrieved from the ICA master browser. When the client
connects by server or published application name, the ICA master
browser returns the address of the desired server or published
application.

Prior to Hotfix SE170016 (included in Service Pack 5B), the server
specified as the server location could only return the internal IP
address of the ICA master browser. Clients were unable to communicate
with the ICA master browser using the internal IP address because it
was usually an invalid Internet address. With this hotfix, the server
specified as the server location can return the external address of the
ICA master browser to the WinFrame client. Likewise, when the client is
connecting using a server or published application name, the ICA
master browser returns the external IP address of the desired server or
published application.

Hotfix SE170016 must be installed on all WinFrame servers that are
contacted by external clients. It must also be installed on the server
acting as the ICA master browser. For server farms, the ICA master
browser must be running on one of the WinFrame servers in the farm and
all the servers in the farm must be visible from outside the firewall.

Each WinFrame server must have its external address configured with the
master browser. The external address is referred to as the WinFrame
server's "alternate address." A utility, ALTADDR.EXE, that configures
alternate addresses for each server is included with the hotfix. For
additional information about ALTADDR.EXE, see the WinFrame Readme or
the Service Pack 5B Readme (included with Service Pack 5B).


Configuring Clients to Use COM Port Polling
-------------------------------------------
This client hotfix and server Hotfix SE170037 (or Service Pack 5B)
allows the DOS client to poll the COM port and send the data in its
input queue to the server machine asynchronously. The client does NOT
actually send the data asynchronously so a read may block while the
data is retrieved, even though the polling mechanism may indicate that
there is data available. This can adversely affect certain applications
that expect the data to be immediately available.

To enable the client polling, add this section to the WFCLIENT.INI file:

[ClientComm]
CommPollSize=On
CommPollWaitMin=0
CommPollWaitMax=500
CommPollWaitInc=1
CommPollWaitIncTime=100

The "CommPollSize=On" statement enables polling.

The CommPollWaitMin value is the time in milliseconds (ms) the poll
loop will delay before reading the port after data has been retrieved.

The CommPollWaitMax value is the maximum polling interval. Using the
above defaults, after a successful read, the poll loop checks the port
as often as possible for 100 ms. After the 100 ms, the poll loop waits
at least 1 ms before checking the port. After 500*100 ms, or 50 seconds,
the poll loop checks the COM port for data only twice a second, every
500 ms.

The CommPollWaitIncTime value specifies how long the poll loop polls at
its current poll rate before slowing the rate by CommPollWaitInc
milliseconds.

========================================================================


WinFrame Windows 3.x Client (Version 3.00.344)

Replaces: WE170317, WE170323, WE000326, WE000328, WE000329, WE000330,
          WE000340
Language supported: English (US)


Description
-----------
This service pack contains the complete WinFrame Win16 Client
(Version 3.00.344). This new client adds basic scripting capabilities
(see "Configuring Scripting" below). It also addresses the following
issues:

 1. If the Alt+Tab key sequence was used to cycle through the local
    Windows applications, the keyboard was unresponsive in the WinFrame
    client session until the Alt key was pressed and released.
    [From Hotfix WE170323]

 2. Holding down the Alt key and double-clicking on a Program Manager
    icon launched the application instead of displaying the Program
    Item Properties.
    [From Hotfix WE170323]

 3. One or more outbound "7" characters was displayed in the client
    Terminal window when a key was pressed.
    [From Hotfix WE000326]

 4. Published applications could not be accessed through a firewall
    because of address translations performed by the firewall. With this
    hotfix, the WinFrame client can request the alternate (external) IP
    address when making connections to a WinFrame server inside a
    firewall. To support this feature, Hotfix SE170016 (included in
    Service Pack 5B) must be installed on the WinFrame 1.7 server (this
    functionality is currently unavailable for WinFrame 1.6 servers).
    See the README.TXT from Hotfix SE170016 for information regarding
    server configuration. See "Configuring Clients to Use the Server's
    Alternate IP Address for Load Balancing and Application Publishing
    Across a Firewall" below for more information about client
    configuration.
    [From Hotfix WE000329]

 5. When a "server location" was specified in Remote Application
    Manager, the client did not use it. Instead, a broadcast was sent
    on the local subnet instead of sending a directed datagram to the
    specified "server location" address.
    [From Hotfix WE000329]

 6. Files marked with the system attribute on a client mapped drive
    were inaccessible.
    [From Hotfix WE000330]

 7. Connecting to a WinFrame server was abnormally terminated if the
    "Close Remote Connection" hotkey was undefined.
    [From Hotfix WE000330]

 8. Provides support for additional modems.
    [From Hotfix WE000330]

 9. When a Windows client tried to connect to a published application
    and there were no more licenses, the Windows clients would display
    an erroneous error message:

      Unable to contact the WinFrame Server Browser. Either your
      network is not functional, or you need to configure an
      address under Server Browsing, or the configured address
      is incorrect.

    This message was also displayed if all WinStations for the transport
    type were in use. Two new messages have been added to the WinFrame
    Windows Clients. In the case where the licenses are exhausted, the
    following message is displayed by the WinFrame Windows Clients:

      Unable to connect to published application. No licenses are
      available.

    In the case where all WinStations for the transport type are in use,
    the following message is displayed:

      Unable to connect to published application. No WinStations
      are currently available.

    To support this feature, Hotfix SE170060 (included in Service Pack
    5B) must be installed on the WinFrame 1.7 server.
    [From Hotfix WE000340]

10. Updated client for use with the Citrix Server SDK. Fixes problems
    allocating multiple virtual channels.
    [From Hotfix WE000340]

11. Corrects the problem seen when the Num Lock state is on, and a
    shift key is held while pressing an arrow key. Previously, this
    did not send the proper keystroke to the server.
    [From Service Pack 5A]

12. Properly reserves the virtual channels that were allocated for
    OEM partners.
    [From Service Pack 5A]

13. Corrects the problem where pressing the Pause key sends two Pause
    keystrokes to the server.
    [From Service Pack 5A]
    
14. Updated client modem list.
    [From Service Pack 5B]


Configuring an Alternate TCP Port
---------------------------------
By default, the WinFrame server listens for ICA WinStation connections
on the well-known TCP port number 1494. With Service Pack 5B installed,
the TCP port number can be set to any value in the range 0-65535,
although it must not conflict with other well-known port numbers. If
the WinFrame server is using a different port number than the default
value of 1494, you must change the TCP port number that the WinFrame
client uses or TCP/IP connection attempts will fail. You can specify
the port number used by the WinFrame client in one of three ways:

 1.  In the "WinFrame Server" field of the WinFrame Client for DOS
     Entry Properties menu, you can enter the name or IP address of a
     Citrix server followed by a colon and the port number; for
     example: 128.255.44:1234 or www.winframe.com:1234, where "1234"
     is the TCP port number. This causes the WinFrame Client for DOS to
     connect to that WinFrame server using TCP port 1234. Connections to
     all other entries in the WinFrame client's server list use the TCP
     port number 1494.

 2.  Edit the APPSRV.INI file in the WinFrame client directory and add
     the setting "ICAPortdNumber=xxxxx" to individual server sections.
     For instance, suppose that two WinFrame server connections are
     configured in the WinFrame client. One connection is configured
     with "HOMER" in the description field, while the other is
     configured with "BART" as the description. "HOMER" uses TCP port
     number 999, while "BART" uses TCP port number 888. The changes to
     APPSRV.INI would look like this:

     [HOMER]
     ...
     ICAPortNumber=999
     ...
     [BART]
     ...
     ICAPortNumber=888

 3.  To specify that all TCP/IP connections are to use an alternate
     TCP port number, edit the APPSRV.INI file in the WinFrame client
     directory and add the setting "ICAPortNumber=xxxxx" to the
     "[WFCLIENT]" section. For example:

     [WFCLIENT]
     ICAPortNumber=1234

     If this setting is added to the "[WFCLIENT]" section, all TCP/IP
     connections configured in the Remote Application Manager will
     attempt to connect using port 1234.

Use methods 1 or 2 instead of method 3 unless all WinFrame connections
will use the same ICA TCP port number. You must also use the ICAPORT
command-line utility to change the default TCP/IP port number on each
WinFrame server.


Configuring Scripting
---------------------
The WinFrame clients that ship with WinFrame Version 1.7 support a
limited scripting language. This script language can be used to
negotiate asynchronous, X.25, or dial-up connections to a WinFrame
server. It can also be useful for connections that go through a
security device that requires additional authentication before starting
the ICA session. As soon as ICA traffic is detected, the script is
aborted and the WinFrame session is started. To view the progress of
the script, check the "Display terminal window when making Dial-In
Connections" checkbox in the preferences for the Remote Application
Manager session.

Add these commands to a text file using a text editor (for example,
Windows Notepad). The file can be any name valid for DOS (an 8
character filename with a 3 character extension); long filenames are
not supported. No user interface is provided for using these scripts.

To Configure Scripting:

1.  Edit the APPSRV.INI file and add the following lines to the
    [WFClient] section.

    ScriptDriver=SCRIPT.DDL
    ScriptDriverWin16=SCRIPTW.DLL
    ScriptDriverWin32=SCRIPTN.DLL
    ScriptFile=

2.  To attach a script file to a Remote Application, edit the
    APPSRV.INI file and add the following line to the section for
    the Remote Application:

    ScriptFile=<script path\filename>

    Example: Suppose you create a script file named X25.SCR in the root
    directory of C: for the Remote Application "MyHost". The changes
    would look as follows:

    [MyHost]
    ScriptFile=C:\X25.SCR

Script Commands:

   ;
      Comment; anything after the semicolon (to end of line) is ignored.

   BEEP
      Provide a bell sound for debugging purposes.

   EXIT
      Terminate and unload the scripting driver.

   SEND STRING "string"
      Send the characters in "string" as ASCII keystrokes.

   SET IGNORECASE [ON | OFF]
      Set case sensitive string compares for the WAIT command.

   WAIT RECEIVE [time]
      Wait for any character to be received; timeout optional.

   WAIT SILENCE time
      Wait for "time" seconds of silence.

   WAIT STRING "string" [time]
      Wait for "string" to be received; timeout optional.

   WAIT TIME time
      Wait for "time" seconds.


Configuring Clients to Use the Server's Alternate IP Address for Load
Balancing and Application Publishing Across a Firewall
---------------------------------------------------------------------
The ICA Browser service uses UDP port 1604. ICA browsing is used by the
ICA client to obtain a list of available Citrix ICA servers. Citrix ICA
Server farms use the ICA browser service to balance ICA client
connections between servers.

The firewall must be configured to allow inbound UDP port 1604
connections to ICA servers for load balancing and ICA server browsing
to function correctly. If your firewall uses address translation on
TCP/IP packets, you must also install Hotfix SE170016 (included
with Service Pack 5B).

WARNING: Allowing untrusted access to the ICA Browser service entails
         some security risk. Only configure the firewall to pass ICA
         Browser data if load balancing and server browsing across a
         firewall are essential.

NOTE:    You cannot share licenses across a firewall or subnet.

Firewalls use IP address translation to convert public (Internet) IP
addresses into private (Intranet) IP addresses. Public IP addresses are
called "external" addresses because they are external to the firewall,
whereas private IP addresses are said to be "internal" addresses.

When a WinFrame client is configured for an IP "server location," it
sends a directed UPD datagram to the server location IP address using
port 1604. For communication to be successful between a WinFrame client
and server, the firewall must be configured so it will pass UDP port
1604 packets. The server location is configured in Remote Application
Manager by selecting Settings from the Options menu.

If a server location is specified, the WinFrame client contacts that
server to determine the address of the ICA master browser. When a user
creates a new entry, the list of available servers and published
applications is retrieved from the ICA master browser. When the client
connects by server or published application name, the ICA master
browser returns the address of the desired server or published
application.

Prior to Hotfix SE170016 (included in Service Pack 5B), the server
specified as the server location could only return the internal IP
address of the ICA master browser. Clients were unable to communicate
with the ICA master browser using the internal IP address because it
was usually an invalid Internet address. With this hotfix, the server
specified as the server location can return the external address of the
ICA master browser to the WinFrame client. Likewise, when the client is
connecting using a server or published application name, the ICA
master browser returns the external IP address of the desired server or
published application.

Hotfix SE170016 must be installed on all WinFrame servers that are
contacted by external clients. It must also be installed on the server
acting as the ICA master browser. For server farms, the ICA master
browser must be running on one of the WinFrame servers in the farm and
all the servers in the farm must be visible from outside the firewall.

Each WinFrame server must have its external address configured with the
master browser. The external address is referred to as the WinFrame
server's "alternate address." A utility, ALTADDR.EXE, that configures
alternate addresses for each server is included with the hotfix. For
additional information about ALTADDR.EXE, see the WinFrame Readme or
the Service Pack 5B Readme (included with Service Pack 5B).

========================================================================


WinFrame Windows 95/NT Client (Version 3.00.344)

Replaces: NE170317, NE170323, NE000324, NE000326, NE000328, NE000329,
          NE000340
Language supported: English (US)


Description
-----------
This service pack contains the complete WinFrame Win32 Client
(Version 3.00.344). This new client adds basic scripting capabilities
(see "Configuring Scripting" below). It also addresses the following
issues:

 1. Windows 95 would not open WinFrame Client .INI files if they were
    marked read-only.
    [From Hotfix NE000326]

 2. Files could not be saved over existing files on the client drive;
    instead the existing file was deleted.
    [From Hotfix NE000326]

 3. One or more outbound "7" characters was displayed in the client
    terminal window when a key was pressed.
    [From Hotfix NE000326]

 4. Published applications could not be accessed through a firewall
    because of address translations performed by the firewall. With this
    hotfix, the WinFrame client can request the alternate (external) IP
    address when making connections to a WinFrame server inside a
    firewall. To support this feature, Hotfix SE170016 (included in
    Service Pack 5B) must be installed on the WinFrame 1.7 server (this
    functionality is currently unavailable on WinFrame 1.6 servers).
    See the README.TXT from Hotfix SE170016 for information regarding
    server configuration. See "Configuring Clients to Use the Server's
    Alternate IP Address for Load Balancing and Application Publishing
    Across a Firewall" below for more information about client
    configuration.
    [From Hotfix NE000329]

 5. For Windows NT clients, the default printer was occasionally set
    incorrectly in a WinFrame session for client printers that were
    auto-created. For example, suppose a Windows NT client computer
    has printers A and B defined, and printer A is the default printer
    on the client system. After logging into a WinFrame server, the
    server's Print Manager could show either A or B as the default
    printer. With this hotfix, the default printer for auto-created
    client printers matches the client's default printer.
    [From Hotfix NE000329]

 6. Provides support for additional modems.
    [From Hotfix NE000330]

 7. When a Windows client tried to connect to a published application
    and there were no more licenses, the Windows clients would display
    an erroneous error message:

      Unable to contact the WinFrame Server Browser. Either your
      network is not functional, or you need to configure an
      address under Server Browsing, or the configured address
      incorrect.

    This message was also displayed if all WinStations for the transport
    type were in use. Two new messages have been added to the WinFrame
    Windows Clients. In the case where the licenses are exhausted, the
    following message is displayed by the WinFrame Windows Clients:

      Unable to connect to published application. No licenses are
      available.

    In the case where all WinStations for the transport type are in
    use, the following message is displayed:

      Unable to connect to published application. No WinStations
      are currently available.

    To support this feature, Hotfix SE170060 (included in Service Pack
    5B must be installed on the WinFrame 1.7 server.
    [From Hotfix NE000340]

 8. Updated client for use with Citrix Server SDK. Fixes problems
    allocating multiple virtual channels.
    [From Hotfix NE000340]

 9. Corrects the problem seen when the Num Lock state is on, and a
    shift key is held while pressing an arrow key. Previously, this
    did not send the proper keystroke to the server.
    [From Service Pack 5A]

10. Properly reserves the virtual channels that were allocated for
    OEM partners.
    [From Service Pack 5A]

11. Corrects the problem where pressing the Pause key sends two Pause
    keystrokes to the server.
    [From Service Pack 5A]
    
12. Updated client modem list.
    [From Service Pack 5B]


Configuring an Alternate TCP Port
---------------------------------
By default, the WinFrame server listens for ICA WinStation connections
on the well-known TCP port number 1494. With Service Pack 5B installed,
the TCP port number can be set to any value in the range 0-65535,
although it must not conflict with other well-known port numbers. If
the WinFrame server is using a different port number than the default
value of 1494, you must change the TCP port number that the WinFrame
client uses or TCP/IP connection attempts will fail. You can specify
the port number used by the WinFrame client in one of three ways:

 1.  In the "WinFrame Server" field of the WinFrame Client for DOS
     Entry Properties menu, you can enter the name or IP address of a
     Citrix server followed by a colon and the port number; for
     example: 128.255.44:1234 or www.winframe.com:1234, where "1234"
     is the TCP port number. This causes the WinFrame Client for DOS to
     connect to that WinFrame server using TCP port 1234. Connections to
     all other entries in the WinFrame client's server list use the TCP
     port number 1494.

 2.  Edit the APPSRV.INI file in the WinFrame client directory and add
     the setting "ICAPortdNumber=xxxxx" to individual server sections.
     For instance, suppose that two WinFrame server connections are
     configured in the WinFrame client. One connection is configured
     with "HOMER" in the description field, while the other is
     configured with "BART" as the description. "HOMER" uses TCP port
     number 999, while "BART" uses TCP port number 888. The changes to
     APPSRV.INI would look like this:

     [HOMER]
     ...
     ICAPortNumber=999
     ...
     [BART]
     ...
     ICAPortNumber=888

 3.  To specify that all TCP/IP connections are to use an alternate
     TCP port number, edit the APPSRV.INI file in the WinFrame client
     directory and add the setting "ICAPortNumber=xxxxx" to the
     "[WFCLIENT]" section. For example:

     [WFCLIENT]
     ICAPortNumber=1234

     If this setting is added to the "[WFCLIENT]" section, all TCP/IP
     connections configured in the Remote Application Manager will
     attempt to connect using port 1234.

Use methods 1 or 2 instead of method 3 unless all WinFrame connections
will use the same ICA TCP port number. You must also use the ICAPORT
command-line utility to change the default TCP/IP port number on each
WinFrame server.


Client Scripting
----------------
The WinFrame clients that ship with WinFrame Version 1.7 support a
limited scripting language. This script language can be used to
negotiate asynchronous, X.25, or dial-up connections to a WinFrame
server. It can also be useful for connections that go through a security
device that requires additional authentication before starting the ICA
session. As soon as ICA traffic is detected, the script is aborted and
the WinFrame session is started. To view the progress of the script,
check the "Display terminal window when making Dial-In Connections"
checkbox in the preferences for the Remote Application Manager session.

Add these commands to a text file using a text editor (for example,
Windows Notepad). The file can be any name valid for DOS (an 8 character
filename with a 3 character extension); long filenames are not
supported. No user interface is provided for using these scripts.

To Configure Scripting:

1.  Edit the APPSRV.INI file and add the following lines to the
    [WFClient] section.

    ScriptDriver=SCRIPT.DDL
    ScriptDriverWin16=SCRIPTW.DLL
    ScriptDriverWin32=SCRIPTN.DLL
    ScriptFile=

2.  To attach a script file to a Remote Application, edit the
    APPSRV.INI file and add the following line to the section for
    the Remote Application:

    ScriptFile=<script path\filename>

    Example: Suppose you create a script file named X25.SCR in the root
    directory of C: for the Remote Application "MyHost". The changes
    would look as follows:

    [MyHost]
    ScriptFile=C:\X25.SCR

Script Commands:

   ;
      Comment; anything after the semicolon (to end of line) is ignored.

   BEEP
      Provide a bell sound for debugging purposes.

   EXIT
      Terminate and unload the scripting driver.

   SEND STRING "string"
      Send the characters in "string" as ASCII keystrokes.

   SET IGNORECASE [ON | OFF]
      Set case sensitive string compares for the WAIT command.

   WAIT RECEIVE [time]
      Wait for any character to be received; timeout optional.

   WAIT SILENCE time
      Wait for "time" seconds of silence.

   WAIT STRING "string" [time]
      Wait for "string" to be received; timeout optional.

   WAIT TIME time
      Wait for "time" seconds.


Configuring Clients to Use the Server's Alternate IP Address for Load
Balancing and Application Publishing Across a Firewall
---------------------------------------------------------------------
The ICA Browser service uses UDP port 1604. ICA browsing is used by the
ICA client to obtain a list of available Citrix ICA servers. Citrix ICA
Server farms use the ICA browser service to balance ICA client
connections between servers.

The firewall must be configured to allow inbound UDP port 1604
connections to ICA servers for load balancing and ICA server browsing
to function correctly. If your firewall uses address translation on
TCP/IP packets, you must also install Hotfix SE170016 (included
with Service Pack 5B).

WARNING: Allowing untrusted access to the ICA Browser service entails
         some security risk. Only configure the firewall to pass ICA
         Browser data if load balancing and server browsing across a
         firewall are essential.

NOTE:    You cannot share licenses across a firewall or subnet.

Firewalls use IP address translation to convert public (Internet) IP
addresses into private (Intranet) IP addresses. Public IP addresses are
called "external" addresses because they are external to the firewall,
whereas private IP addresses are said to be "internal" addresses.

When a WinFrame client is configured for an IP "server location," it
sends a directed UPD datagram to the server location IP address using
port 1604. For communication to be successful between a WinFrame client
and server, the firewall must be configured so it will pass UDP port
1604 packets. The server location is configured in Remote Application
Manager by selecting Settings from the Options menu.

If a server location is specified, the WinFrame client contacts that
server to determine the address of the ICA master browser. When a user
creates a new entry, the list of available servers and published
applications is retrieved from the ICA master browser. When the client
connects by server or published application name, the ICA master
browser returns the address of the desired server or published
application.

Prior to Hotfix SE170016 (included in Service Pack 5B), the server
specified as the server location could only return the internal IP
address of the ICA master browser. Clients were unable to communicate
with the ICA master browser using the internal IP address because it
was usually an invalid Internet address. With this hotfix, the server
specified as the server location can return the external address of the
ICA master browser to the WinFrame client. Likewise, when the client is
connecting using a server or published application name, the ICA master
browser returns the external IP address of the desired server or
published application.

Hotfix SE170016 must be installed on all WinFrame servers that are
contacted by external clients. It must also be installed on the server
acting as the ICA master browser. For server farms, the ICA master
browser must be running on one of the WinFrame servers in the farm and
all the servers in the farm must be visible from outside the firewall.

Each WinFrame server must have its external address configured with the
master browser. The external address is referred to as the WinFrame
server's "alternate address." A utility, ALTADDR.EXE, that configures
alternate addresses for each server is included with the hotfix. For
additional information about ALTADDR.EXE, see the WinFrame Readme or
the Service Pack 5B Readme (included with Service Pack 5B).

