Filename: SE165102.EXE For: WinFrame Version 1.6 Replaces: WF160504, WF160511, WF160514, WF160516, WF160518, WF160520, WF160525, WF160526, WF160529, SE165033, SE165034, SE165035, SE165036, SE165041, SE165042, SE165045, SE165052, SE165055, SE165060, SE165062, SE165064, SE165065, SE165067, SE165068, SE165069, SE165073, SE165075, SE165076, SE165081, SE165082, SE165085, SE165086, SE165088, SE165091, SE165092, SE165095, SE165096, SE165099 Language supported: English (US) NOTE: You must install Service Pack 5 before applying this hotfix. Description ----------- This hotfix for Citrix WinFrame Version 1.6 addresses the following issues: 1. Microsoft Word 7.0b would cause a Dr. Watson trap while displaying certain documents at specific zoom levels. [From Hotfix WF160504] 2. WinStations disappeared from WinStation Administration and could not be reset. [From Hotfix WF160511] 3. A WinStation would trap due to receiving a bad packet. [From Hotfix WF160511] 4. Installing Microsoft SNA Server Version 3.0 would cause a Dr. Watson trap in Program Manager. [From Hotfix WF160514] 5. The WinFrame user configurations were not being replicated to a backup domain controller (BDC) from the primary domain controller (PDC). The existing WinFrame user configurations must be migrated from the Registry of the PDC to the Security Accounts Manager (SAM) database using the CNVRTUC.EXE utility. (See usage information below.) Once the migration is accomplished, the replication of the WinFrame user configurations is performed using the normal policies governing the replication of the user account database from the PDC to one or more BDCs. Please note that the domain controller's Registry size increases because the user configuration is written to the SAM. The size increase is approximately 1000 bytes per user configuration. [From Hotfix WF160518] 6. A user would get a white screen during logon when another user had an unanswered popup related to a profile load error. The white screen would last for five minutes or until the user acknowledged the popup. [From Hotfix WF160520] 7. NetWare password synchronization failed if the WinFrame server name (computer name) exceeded 13 characters. [From Hotfix WF160525] 8. A WinLogon event ID 1008 was logged in the System Event Log when users logged off. The description for this event reads "Failed to unload the profile for user ". [From Hotfix WF160526] 9. The PID no longer precedes the process name. Start the Performance Monitor, add to the chart, and select the Object "Process". The Instance listbox will no longer show the PID before each process name. [From Hotfix WF160529] 10. WFSHELL.EXE and NTVDM did not respond correctly to the Windows message WM_ENDSESSION. This prevented those executables from exiting properly during a logoff attempt. [From Hotfix WF160529] 11. A WinStation would not reset when being debugged under NTSD. Once the system was in this state, it needed to be rebooted in order to reinitialize the WinStation. [From Hotfix SE165034] 12. On remote WinStations, some programs could not display text at the end of lines while scrolling horizontally. [From Hotfix SE165035] 13. Resetting a WinStation did not request applications to exit before killing them. A WinStation reset now sends the WM_QUERYENDSESSION and WM_ENDSESSION messages to the currently running applications; the applications will then perform any necessary cleanup. [From Hotfix SE165036] 14. When debugging a WinStation with NTSD, the WinStation would hang after a logoff or WinStation reset. [From Hotfix SE165036] 15. On an aborted logoff attempt, the WFSHELL and NDDEAGNT processes are often killed. Now these processes are only killed if the logoff is not aborted; that is, if the user really does log off. [From Hotfix SE165036] 16. The name of the NetWare server used for password synchronization is now saved to the SAM database (see item #5 above). Because it is not possible for a domain user's password to be modified when the PDC is down, one of the error messages relating to NetWare password synchronization has been changed to: "The default domain administrator is not configured correctly or the PDC is offline. Notify your system administrator. Now attempting to logon user on domain ." This message is typically displayed when the administrator account's ID or password is configured incorrectly within the NetWare Logon Configuration section of User Manager. With this hotfix, this message will also be displayed when the PDC is unavailable. [From Hotfix SE165036] 17. Internet Explorer 3.02 would cause a Dr. Watson trap while running a Java applet that tried to access a Registry path longer than 260 characters. (This Dr. Watson trap could actually be caused by any application that accessed a Registry path longer than 260 characters.) [From Hotfix SE165042] 18. User Manager refused to accept server names that exceeded 15 characters in length for the home directory. This appears in User Properties when the Profile button is clicked. This hotfix includes the LONGNAME.EXE command-line utility that toggles a Registry value that enables User Manager to accept long server names. [From Hotfix SE165045] 19. Adds CLIENTNAME environment variable to logon environment. [From Hotfix SE165052] 20. The GetWindowsDirectory() function would not correctly handle the error condition when the specified buffer size was not large enough to hold the terminating NULL character. This problem caused failures with some third-party setup programs incorrectly using the GetWindowsDirectory() function. [From Hotfix SE165033] 21. This allows .INI files to contain lines longer than 512 characters. [From Hotfix SE165041] 22. Borland C++ Builder would not successfully install. This hotfix will prevent the Program Manager from deleting a user's temporary directory when regenerating a user's environment unless the path to the temporary directory is changed. Temporary directories are deleted when the DeleteTempDirsOnExit flag in the Registry is enabled and a user logs off or changes the temporary directory. [From Hotfix SE165055] 23. Fixes memory leaks and closes a Registry key previously left open when the application compatibility flag for limiting the amount of physical memory reported was set for a given application. [From Hotfix SE165060] 24. Fixes a case where the WinStation handle was left open if the QueryWinStationInformation call failed for some reason. This could occur when the application compatibility flag for returning the user name instead of the computer name was set for a given application. [From Hotfix SE165060] 25. %username% in the WinFrame Profile Path was not resolved properly when copying an old user to a new user. It would use the old user's name. %username% is now resolved as soon as the profile dialog box is closed (same as the NT profile path). [From Hotfix SE165064] 26. The "show processes" NTSD command ("|") displayed "CLIB.DBG" instead of the executable module name. [From Hotfix SE165065] 27. The new NTSD debugger can now attach to processes executing in different WinStations. Once installed, the NTSD debugger requires a Registry flag to be set to enable cross-WinStation debugging. This Registry flag is located under the key: \\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Citrix The value is CrossWinStationDebug. When this value is set to the type REG_DWORD and value 1, NTSD can attach and debug processes belonging to different WinStations. This flag takes effect when a WinStation is reset or the system is rebooted. This flag is global and applies to all WinStations including the Console. For NTSD to attach to different WinStations the -c {WinStation #} parameter must be specified. The -c {WinStation #} by default will attach to the WinStation's CSR process. Otherwise, the -p option should be used to specify a different process. [From Hotfix SE165067] 28. Fixes a potential trap in MSGINA.DLL. [From Hotfix SE165069] 29. Files to be deleted or renamed during the next reboot of the system were not being renamed or deleted. Many software installation programs use the MoveFileEx() function MOVEFILE_DELAY_UNTIL_REBOOT to replace files that are currently in use with the next reboot of the server. The list of files that will be renamed with the next reboot of the system are stored in the Registry key: HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Control \Session Manager \FileRenameOperations Once the FileRenameOperation is carried out, the values in this Registry key are removed. After Service Pack 5 is installed the MoveFileEx() API appears to work, returns the correct error code, and the Registry values are created. However, on restart the files still exist and the Registry values are not deleted. For example when a hotfix is installed, HOTFIX.EXE renames active files to HF*.TMP. HOTFIX.EXE then calls MoveFileEx() so that each of the HF*.TMP files are deleted upon reboot. After Service Pack 5 was installed, the HF*.TMP files were not deleted. When this hotfix is installed and the server is rebooted, the HF*.TMP will be deleted. [From Hotfix SE165073] 30. This hotfix addresses a problem seen in some applications when the application attempted to open the clipboard. The open clipboard would fail due to contention with another application. This problem was reproduced using PeopleSoft (Microsoft Excel 7.0) but could 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 command 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. Possible 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 PeopleSoft 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 have an effect. [From Hotfix SE165075] 31. This hotfix removes all values from the Registry key: HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Control \Session Manager \FileRenameOperations except those values that pertain to files that have been replaced by hotfixes (HF*.TMP). Because of the problem described in item #29 above, a given server could potentially have many pending FileRenameOperations to carry out upon the next reboot. If the server were allowed to carry out these old FileRenameOperations, it's possible that the operation would have an undesirable effect. For example, suppose the latest version of a given .DLL was currently installed on the WinFrame server. Suppose further that there was a FileRenameOperations entry to replace the latest version of the .DLL with an older version. When this hotfix was installed, the problem described in item #29 would be fixed. With the next reboot of the WinFrame server, the latest DLL would be replaced by the older version. This scenario could cause an application that required the latest version of the DLL to behave erratically. Because the fix for item #29 could cause this undesired behavior, this hotfix, by default, will remove any Registry values from FileRenameOperations that do not pertain to hotfixes. The Registry values removed by this hotfix will be logged to the file HFX_RLOG.TXT, which will be created in the current directory. If this file already exists in the current directory, it will be overwritten. The behavior described above is enabled by setting the value: FixRenameReg=1 in the HOTFIX.INI. This hotfix ships with this value set. To disable this behavior, add a semicolon to the beginning of this line in HOTFIX.INI. [From Hotfix SE165075] 32. This fixes a problem for clients connecting via NASI WinStations. When a large amount of data was sent to the client (for example, file downloads), the client would intermittently lock up. [From Hotfix SE165076] 33. WinStations sometimes hung during a login or logout operation. [From Hotfix SE165081] 34. This hotfix solves the following hung WinStation problems: A. Applications would generate an exception due to a CSRSS.EXE thread trapping. This would cause the WinStation to hang. B. WinStations would occasionally hang because they could not load the WinStation driver. [From Hotfix SE165081] 35. This hotfix solves the following hung WinStation problems: A. IPX WinStations hang during logon/logoff. The PdWd was held while waiting for I/O to complete. B. WinStation hangs caused by an uninitialized variable in the thinwire video driver. C. CSR would trap during logon/logoff. The PdWd critical section was waiting on an event. The Wd module was changed to increment its reference count prior to giving up the critical section to prevent the module from being unloaded. [From Hotfix SE165082] 36. Applications could cause arbitrary lines to be drawn across the WinStation client screen. This was caused by applications that draw to window coordinates less than negative 32K. This problem was reproduced with the CAD application Microstation 95 Version 05.05.01.65 Windows x86. [From Hotfix SE165082] 37. 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 SE165082] 38. Account operators were not able to update WinFrame user configuration parameters within the User Manager for Domains utility. [From Hotfix SE165085] 39. A WinStation would hang after a disconnect or a logoff. [From Hotfix SE165086] 40. A WinStation would generate an access violation during logon. [From Hotfix SE165086] 41. IPX clients could not connect to the server. [From Hotfix SE165088] 42. When running a Microsoft Power Point slideshow with wipe left or wipe right slide transition, stripes appear corrupting the slide. [From Hotfix SE165092] 43. WinFrame was unable to logon more than 101 concurrent users using mandatory user profiles. When a user logs on using a mandatory user profile, the mandatory profile (*.MAN file) is copied to %SystemRoot%\system32\config\TMP???.TMP, where "???" is incremented as each user logs on. As each user logs off, the TMP???.TMP is deleted. Prior to this hotfix, the TMP*.TMP files could only be incremented up to the 101st concurrent user. The 102nd user would receive a message stating the user could not be logged on. With this hotfix, the mandatory profiles are copied using the naming convention TMP????.TMP. The new naming convention theoretically supports up to 10000 concurrent users utilizing mandatory user profiles. [From Hotfix SE165096] 44. Personal Oracle 7 would not function correctly when run from a WinStation. After this hotfix is applied, you are required to set two Oracle files "system global". Follow these steps: 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 SE165099] 45. An application called Navision hung when the user double- clicked on the application's scroll bar. [From Hotfix SE165102] Installation Instructions for Hotfix SE165102 --------------------------------------------- 1. Copy SE165102.EXE to an empty directory on your hard disk and execute the command: SE165102 2. Execute the following command to install the hotfix on your system: HOTFIX /I 3. Shut down and restart your computer. CNVRTUC Usage ------------- This utility is used to convert user configurations from the non-replicated Registry-based user configuration entries to the replicated SAM database. All users or a single user may be converted and a different domain may be specified. To convert all users in a particular domain, type CNVRTUC /ALL /DOMAIN d, where "d" is the domain. To convert a single user, type CNVRTUC /USER u /DOMAIN d, where "u" is the username to convert and "d" is the name of the user's domain. This utility should be run on a WinFrame server that is a member of the domain requiring conversion. You must be logged on as a domain administrator when the utility is run. LONGNAME Usage -------------- This utility is used to toggle whether to accept long server names in User Manager for a user's home directory. To enable long server names, type LONGNAME /ENABLE. To disable long server names, type LONGNAME /DISABLE. To query whether long server names are currently enabled or disabled, type LONGNAME /Q. Files Updated ------------- advapi32 dll 205,088 06/20/97 10:10a basesrv dll 38,064 06/20/97 10:10a cnvrtuc exe 23,584 06/16/97 11:31a csrsrv dll 31,232 08/18/97 12:27p csrss exe 4,912 08/18/97 12:27p cxstatus dll 8,992 06/16/97 11:23a hotfix exe 56,608 09/10/97 02:21p kernel32 dll 364,000 02/12/98 05:27p longname exe 27,856 06/16/97 11:31a msgina dll 119,936 07/02/97 12:56p nasicall dll 4,992 09/02/97 05:20a nddeagnt exe 13,664 06/16/97 11:19a ntdll dll 310,304 06/16/97 11:13a ntsd exe 162,016 08/13/97 04:05p pdcomp dll 10,192 09/02/97 05:18a pdcrypt1 dll 7,632 09/02/97 05:18a pdframe dll 8,096 09/02/97 05:18a pdmodem dll 10,704 09/02/97 05:18a pdreli dll 8,640 10/08/97 03:00p pdrframe dll 6,976 09/02/97 05:18a regapi dll 33,680 09/10/97 04:01p shell32 dll 67,888 06/16/97 11:17a smss exe 65,824 07/09/97 07:08p tdasync dll 9,024 09/02/97 05:19a tdipx dll 12,272 09/02/97 05:19a tdnasi dll 12,256 09/02/97 05:19a tdnetb dll 10,176 09/02/97 05:19a tdspx dll 10,688 09/02/97 05:19a tdtcp dll 11,728 09/02/97 05:19a user32 dll 223,600 07/23/97 04:46p usrmgr exe 292,288 06/16/97 11:21a vdtw30 dll 71,296 11/05/97 06:21p wdcon dll 5,040 09/02/97 05:21a wdibm dll 16,528 09/02/97 05:21a wdica dll 20,928 09/16/97 07:51p wdteco dll 18,032 09/02/97 05:21a wdvt420 dll 16,032 09/02/97 05:21a wfapi dll 5,936 11/18/97 04:42p wfshell exe 18,128 06/16/97 11:31a winlogon exe 194,224 11/18/97 10:57a winrdu exe 21,600 07/09/97 10:32a winsrv dll 1,424,432 01/29/98 06:28p winsta dll 26,992 06/20/97 10:07a wowexec exe 10,896 05/14/97 04:03p