Filename: SE165086.EXE For: WinFrame Version 1.6 Replaces: WF160504, WF160511, WF160514, WF160516, WF160518, WF160520, WF160525, WF160526, WF160529, SE165033, SE165035, SE165036, SE165041, SE165042, SE165045, SE165052, SE165055, SE165060, SE165062, SE165064, SE165065, SE165067, SE165068, SE165069, SE165073, SE165075, SE165076, SE165081, SE165082, SE165085 Language supported: English (US) NOTE: You must install Service Pack 5 before applying this Hotfix. NOTE: You MUST have WinCenter connect 3.0.39 in order for this Hotfix to be compatible with NIS. Description ----------- This hotfix for Citrix WinFrame Version 1.6 addresses the following issues: 1. This fixes the problem where Microsoft Word 7.0b would cause a Dr. Watson trap while displaying certain documents at specific zoom levels. [From Hotfix WF160504] 2. This hotfix corrects the problem where WinStations disappear from WinStation Administration and cannot be reset. [From Hotfix WF160511] 3. This hotfix corrects the problem where a WinStation would trap due to receiving a bad packet. [From Hotfix WF160511] 4. This corrects the problem where installing Microsoft SNA server Version 3.0 would cause a Dr. Watson trap in Program Manager. [From Hotfix WF160514] 5. This hotfix corrects the problem where 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. This corrects the problem where 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. This hotfix corrects the problem where NetWare password synchronization failed if the WinFrame server name (computer name) exceeded 13 characters. [From Hotfix WF160525] 8. This corrects the problem where 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. This corrects the problem where the PID 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. This corrects the problem where 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. On remote WinStations, some programs could not display text at the end of lines while scrolling horizontally. [From Hotfix WF160535] 12. 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] 13. When debugging a WinStation with NTSD, the WinStation would hang after a logoff or WinStation reset. [From Hotfix SE165036] 14. 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] 15. 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] 16. 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 accesses a Registry path longer than 260 characters.) [From Hotfix SE165042] 17. 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] 18. Adds CLIENTNAME environment variable to logon environment. [From Hotfix SE165052] 19. This corrects the problem where 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] 20. This allows .INI files to contain lines longer than 512 characters. [From Hotfix SE165041] 21. 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] 22. Fixes memory leaks and closes a Registry key previously left open when the application compatibility flag for limiting the amount of physical memory reported is set for a given application. [From Hotfix SE165060] 23. Fixes a case where the WinStation handle is left open if the QueryWinStationInformation call fails for some reason. This could occur when the application compatibility flag for returning the user name instead of the computer name is set for a given application. [From Hotfix SE165060] 24. Fixes the problem where %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] 25. Fixes the problem where the "show processes" NTSD command ("|") displayed "CLIB.DBG" instead of the executable module name. [From Hotfix SE165065] 26. The new NTSD debugger can 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] 27. Fixes a potential trap in MSGINA.DLL. [From Hotfix SE165069] 28. Fixes the problem where 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] 29. 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 less 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 a 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] 30. 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 #28 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 #28 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 #28 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 semi-colon to the beginning of this line in HOTFIX.INI. [From Hotfix SE165075] 31. 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] 32. This hotfix for WinFrame 1.6 corrects a problem where WinStations may hang during a login or logout operation. [From Hotfix SE165081] 33. This hotfix addresses the following: 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] 34. 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] 35. This hotfix for WinFrame 1.6 fixes a problem where applications can cause arbitrary lines to be drawn across the WinStation client screen. This is 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] 36. This hotfix for WinFrame 1.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 SE165082] 37. This hotfix for WinFrame 1.6 corrects the problem where account administrators were not able to update WinFrame user configuration parameters within the User Manager for Domains utility. [From Hotfix SE165085] 38. This hotfix for WinFrame 1.6 fixes a problem where a WinStation would hang after a disconnect or a logoff. [From Hotfix SE165086] 39. This hotfix for WinFrame 1.6 fixes a problem where a WinStation would generate an access violation during logon. [From Hotfix SE165086] Installation Instructions for Hotfix SE165086 --------------------------------------------- 1. Copy SE165086.EXE to an empty directory on your hard disk and execute the command: SE165086 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 11:10a basesrv dll 38,064 06/20/97 11:10a cnvrtuc exe 23,584 06/16/97 12:31p csrsrv dll 31,232 08/18/97 01:27p csrss exe 4,912 08/18/97 01:27p cxstatus dll 8,992 06/16/97 12:23p hotfix exe 56,608 09/10/97 03:21p kernel32 dll 364,000 08/20/97 06:04p longname exe 27,856 06/16/97 12:31p msgina dll 119,936 07/02/97 01:56p nasicall dll 4,992 09/02/97 06:20a nddeagnt exe 13,664 06/16/97 12:19p ntsd exe 162,016 08/13/97 05:05p pdcomp dll 10,192 09/02/97 06:18a pdcrypt1 dll 7,632 09/02/97 06:18a pdframe dll 8,096 09/02/97 06:18a pdmodem dll 10,704 09/02/97 06:18a pdreli dll 8,640 09/02/97 06:18a pdrframe dll 6,976 09/02/97 06:18a regapi dll 33,680 09/10/97 05:01p shell32 dll 67,888 06/16/97 12:17p smss exe 65,824 07/09/97 08:08p tdasync dll 9,024 09/02/97 06:19a tdipx dll 12,272 09/02/97 06:19a tdnasi dll 12,256 09/02/97 06:19a tdnetb dll 10,176 09/02/97 06:19a tdspx dll 10,688 09/02/97 06:19a tdtcp dll 11,728 09/02/97 06:19a user32 dll 223,600 07/23/97 05:46p usrmgr exe 292,288 06/16/97 12:21p vdtw30 dll 71,296 09/10/97 03:20p wdcon dll 5,040 09/02/97 06:21a wdibm dll 16,528 09/02/97 06:21a wdica dll 20,928 09/16/97 08:51p wdteco dll 18,032 09/02/97 06:21a wdvt420 dll 16,032 09/02/97 06:21a wfshell exe 18,128 06/16/97 12:31p winlogon exe 194,224 07/02/97 01:53p winrdu exe 21,600 07/09/97 11:32a winsrv dll 1,424,432 09/16/97 08:40p winsta dll 26,992 06/20/97 11:07a wowexec exe 10,896 05/14/97 05:03p