CTX104516 - Hotfix XE103W2K3037 - For MetaFrame XP 1.0 for Windows 2003 Server - English This document was published at: http://support.citrix.com/kb/entry.jspa?externalID=CTX104516 Document ID: CTX104516, Created on: Jul 9, 2004, Updated: Jul 9, 2004 Products: Citrix MetaFrame XP 1.0 for Microsoft Windows 2003 Attachment: XE103W2K3037.msi (563.0 K) Hotfix readme name: XE103W2K3037.HTM Hotfix package name: XE103W2K3037.MSI For: MetaFrame XP 1.0 with Service Pack 3 for Windows 2003 Replaces: XE103W2K3006, XE103W2K3007, XE103W2K3011, XE103W2K3026, XE103W2K3035 Date: June, 2004 Language supported: English (US) Note: This hotfix can be applied only to a Windows 2003 Server with MetaFrame XP Version 1.0 with Feature Release 3/Service Pack 3 installed. Where to Find Documentation This document describes the issue(s) solved by this hotfix and includes installation instructions. You can find more information about MetaFrame for Windows in the Administrator's Guide. The Administrator's Guide is in the \DOCS directory on the Citrix MetaFrame Server CD. All product documentation is also available from the Citrix Web site at http://www.citrix.com/support. The Administrator's Guide is in an Adobe Portable Document (PDF) format file. To view, search, and print the documentation, you need Adobe Reader 4 or above. You can download Adobe Reader for free from the Adobe Web site at http://www.adobe.com. Issue(s) Resolved in this Hotfix Caution! Several items in this hotfix require you to edit the registry. Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. 1. When a modal dialog box was created from an IME pad in a seamless session, the Windows client operating system occasionally stopped responding. In seamless logic, the owner of the IME pad window is intentionally set to the foreground. When the accessibility hook is disabled, the seamless engine can create a situation where the enumeration routine considers the modal dialog box from the IME pad window as the parent of the IME pad window. As a result, the seamless engine considers both of the windows as the parent. This fix ensures that the foreground window, which is intended to be set as the parent, is not the child of the enumerated window. The Windows client operating system then responds correctly. [From Hotfix XE103W2K3006][#50843] 2. Using the Management Console for MetaFrame to configure "use universal driver only" or "use universal driver only if native driver is unavailable" to auto-create client printers, the scaling field sometimes did not display properly when running Excel in an ICA session. This occurred under the following scenario: A. Create a new Excel document. B. Type a from A1 to A37 in the Excel work sheet. C. Open Print Preview in Excel. D. Click Setup. E. Change the orientation from Portrait to Landscape. F. Change the scaling from Adjust to to Fit to. G. Close the Print Setup window. H. Click Setup again. Note that the percentage in the Adjust to field sometimes appears to be changed. If Excel.exe was launched from the console and the scenario above was repeated, the percentage of scaling in the Adjust to field did not change when the server default printer was the HP LaserJet Series II printer. The DEVMODE set for autocreated client printers may not have been valid. This could cause the scaling fields to be interpreted incorrectly by the print driver. This fix ensures the DEVMODES for autocreated client printers are valid before setting them. The scaling fields in Excel launched in an ICA session display correctly. [From Hotfix XE103W2K3006][#51176] 3. The Connect Client Printers policy did not work consistently. The code was looking at an incorrect return value and ignored the correct value. The Connect Client Printers policy was changed so that it looks at the correct value and the policy now works consistently. [From Hotfix XE103W2K3006][#52158] 4. Outlook.exe's parameters were used by the client when launching OutlookExpress as a published application if client-to-server content redirection was enabled. This occurred because the default setting was to use Outlook.exe's parameters for mailto requests. This hotfix adds functionality to better handle mailto requests from the client. Based on the mailer application to be launched, the appropriate mailto parameters are selected from the registry to format the launch string. [From Hotfix XE103W2K3006][#53537] 5. 16-bit Windows applications launched as published applications intermittently failed to launch. With some 16-bit applications, timing became an issue when determining if a process was actually running because these applications run as ?tasks? under Ntvdm.exe. The timing in the functionality that checks for these ?tasks? under Ntvdm.exe was modified to verify when is a process is running. 16-bit Windows applications now launch properly as published applications. [From Hotfix XE103W2K3006][#54663] 6. Closing nested popup menus in a seamless session sometimes caused an application to lose focus when the seamless session was displayed on a Windows NT 4.0-based system. Menus that are created as a regular window using the CreateWindow API did not always adhere to top level window changes correctly. A new seamless Exception Global Flag has been introduced that provides the ability to prevent the creation of top level windows in a seamless session. To set this flag, create the following registry value: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI Key name: SeamlessFlags Type: REG_DWORD Value: 0x1000 Closing nested popup menus in a seamless session no longer causes an application to lose focus. [From Hotfix XE103W2K3006][#56912] 7. When ATOK IME Version 16 is installed on a MetaFrame server and a user attempts to use it in an ICA session, the session may not logoff even after all the published application are closed. ATOK Version 16 introduced new processes to host IME windows. Those processes were left in the session and MetaFrame regarded them as user processes. With this fix, those processes are regarded as system processes. MetaFrame logs off the session if only those system processes are present. The ICA session is logged off if all the published applications in the session are closed. [From Hotfix XE103W2K3006][#61232] 8. Additional output trays on client printers were not being saved and restored on subsequent logons. This affected certain Lexmark-developed printer drivers among others. This occurred because printer driver data registry keys greater than 2KB in length were not being read and could not be saved or restored. This fix ensures that printer driver data registry keys up to 16KB are saved and restored. Some device-specific properties that were reset with each logon; for example, output expander setups, are saved and restored on subsequent logons. [From Hotfix XE103W2K3006][#62041] 9. When using the shadow taskbar, the server occasionally experienced a fatal system error. This occurred because a function is wsxica was calling a function in TermService but it was not checking whether or not the returned value was an error. This caused an access violation error. With this hotfix, the function now checks to determine if the returned value is an error or not. [From Hotfix XE103W2K3006][#62319] 10. After exiting a published application in an ICA session, the session did not close on a MetaFrame/Windows 2003 Server if the Windows Product Activation process (Wpabaln.exe) was running. The ICA session was not closed if any applications other than the system applications that were registered with MetaFrame were running. To resolve this problem, Wpabaln.exe was registered to the MetaFrame system process list. The ICA session now closes even if the Windows Product Activation process is running. [From Hotfix XE103W2K3006][#62617] 11. Some client printer properties were not being saved and restored on subsequent logons. This affected certain Lexmark-developed printer drivers among others. This occurred because printer driver data registry keys greater than 2KB in length were not being read and could not be saved or restored. This fix ensures that printer driver data registry keys up to 16KB are saved and restored. Some device-specific properties that were reset with each logon; for example, output expander setups, are saved and restored on subsequent logons. [From Hotfix XE103W2K3006][#62625] 12. In Windows Server 2003, client printers could not be autocreated without installing a Citrix Feature Release 3 license. Terminal services in Windows Server 2003 were changed so that the printer virtual channel needed to be created in the system context. The MetaFrame server would not issue a printer autocreation command through the printer virtual channel. This hotfix ensure that the printer virtual channel is created in the system context and a Feature Release 3 license is no longer required. [From Hotfix XE103W2K3006][#63343] 13. Changing a password when logging on to a seamless session launched two instances of the same published application. This problem occurred as a result of the functionality in the seamless engine that determines whether or not applications are launched. With this update, only one instance of an application is launched if a password is changed during logon to a seamless session. [From Hotfix XE103W2K3006][#63595] 14. When running an application in a seamless session, a problem sometimes occurred when the application changed its large icon using WM_SETICON. The operating system failed to change the associated small icon. This hotfix introduces a new per-window exception flag (TYPE_TWI_NO_SMALLICON_FROMWINCLASS 0X200) that can be set to direct the seamless engine to not request the small icon associated with the specified window class. The addition of a registry key specifies the window class name Navigate to the following registry keys: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\<wind ow class name> Name: ClassName Type: REG_SZ Data: <window class name> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI Name: Type Type: REG_DWORD Data: 200 (hex) [From Hotfix XE103W2K3006][#63960] 15. When published seamlessly, text-based telnet application flickered after upgrading to or installing Citrix' Feature Release 3. This occurred because new logic introduced with Feature Release 3 caused the client to treat certain windows of an application differently from the way the server was treating them. With this fix, the server sends the correct information to the client. [From Hotfix XE103W2K3006][#65105] 16. When a session was reset because of an ICA connection time-out or logged off from the Citrix Management Console, the client autocreated printer properties were saved in the incorrect registry key. As a result, MetaFrame could not get the current user security ID from the winstation query. With this hotfix, the client autocreated printer properties are saved in the correct registry key. [From Hotfix XE103W2K3006][#65428] 17. If a starting program was specified under the Environment tab in User Account Properties and if the ICA pass-through Client had pass through authentication enabled, Ssonsvr.exe was running in the user?s ICA session. When the user exited the application (specified under the Environment tab in User Account Properties), the ICA session could not be logged off; the administrator had to manually stop the Ssonsvr.exe process. The thread that caused the Ssonsvr.exe process to exit when the user logged off from the application was not being started. Now The thread that causes the Ssonsvr.exe process to exit is started when the user logs off from the application. [From Hotfix XE103W2K3006][#66092] 18. Logon names prefaced with a pound sign or hash mark (#) followed by a decimal value equal to or greater than 49152 sometimes caused a memory leak. For example, the logon name #99999 would cause the memory leak. This hotfix corrects that behavior; user logon names prefaced with a pound sign or hash mark (#) followed by a decimal value equal to or greater than 49152 can be used without causing a memory leak. [From Hotfix XE103W2K3006][#66490] 19. In an operation running 24x7, license warning error messages caused a flurry of help desk calls and emails. Management was also alerted. User wanted to disable regular notification or an option to control who saw the error messages. To avoid the error messages from being sent to everyone, you need to make the following change to the registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix Type: DWORD Value: AnnoyAdminsOnly=1 With the value set to 1, only administrators receive the license warning error messages. [From Hotfix XE103W2K3006][#66608] 20. A Java application experienced a fatal error when running as a published application or the initial application. The size of the buffer for the window class name was incorrect; the error occurred if the application window exceeded 64 characters. This behavior has been corrected. [From Hotfix XE103W2K3006][#67014] 21. Note: For this fix to work correctly, you need Version 7.100 or later of the Win32 ICA Client. Instant Messenger type programs commonly use the FlashWindow() API to flash the taskbar button to alert users of incoming messages. Prior to this, this functionality was not available when running a seamless session. This fix adds support for this API when running a seamless session. The taskbar button now flashes to alert users of incoming messages. [From Hotfix XE103W2K3006][#69369] 22. When a user disconnected from a session, then later reconnected to it from a different workstation that had a different printer, the new printer was not autocreated and the session had the printer from the first connection. A race condition was discovered where the previous client name was sent instead of the new one. This hotfix corrects that race condition. [From Hotfix XE103W2K3007][#68279] 23. An ICA session sometimes failed to delete autocreated printers when a user logged off from the session soon after logging on. The thread to delete printers finished its task before the thread to create them finish its task, causing some printers to be left in the session. With this hotfix, the thread to delete printers waits for the thread to create printers to finish its task All printers in the session are always deleted correctly. [From Hotfix XE103W2K3007][#69638] 24. Sometimes a published application was launched more than once in the same session in the following scenario: ? The published application was configured with Allow only one instance of the application for each user in the Citrix Management Console ? The user rapidly clicked the published application icon in the Program Neighborhood Client ? The published application was to run seamlessly This occurred because the program was not enforcing an application instance limit check while launching a published application. This hotfix corrects the problem and only one instance of the published application is launched. [From Hotfix XE103W2K3007][#71801] 25. If users had both local printers and network printers on their client devices and the default printer was a network printer, ICA sessions incorrectly set the default printer to one of the local printers. An error in which name to send caused the local printer to be set as the default. This hotfix resolves the problem. [From Hotfix XE103W2K3007][#72459] 26. The server occasionally experienced an access violation in Wsxica.dll. This occurred because the code was not enumerating winstations properly. This hotfix ensures that the access violation no longer occurs. [From Hotfix XE103W2K3007][#72688] 27. If a published application was a program that created a new process and then terminated itself, the published application appeared in the Citrix Management Console. However, in a seamless session the application was launched through session sharing, the application appeared in the Citrix Management Console but then disappeared. By default, the thread that checks the process cares about only the first instance of the launched process. The thread regarded the published application as terminated when the first instance of the process was terminated even if that process created a separate process. This fix provides a way to configure those published applications to use the JOB object so that additional processes created by the initial process are considered as published applications. For this fix to work properly, you need to perform the following steps: ? If the command line of the published application is [ApplicationPath], go to the following registry key and make changes as necessary: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\Start InJobObject Key Value: [ApplicationPath] Type: DWORD Value: 0 ? For example, if the command like specified for the published application is c:\notepad.cmd, go to the following registry key and make changes as necessary: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI\Start InJobObject Key Value: c:\notepad.cmd Type: DWORD Value: 0 For those applications whose command line is specified in the StartInJobObject key, the published application will not disappear from the Citrix Management Console until all of the processes created by the process are terminated. [From Hotfix XE103W2K3011][#63894] 28. An administrator on a Feature Release 3 server could not enumerate users on a Feature Release 2 server from the shadow taskbar. An empty list was returned. With this fix, the administrator is able to enumerate the users on a Feature Release 2 server when he is using the shadow taskbar on a Feature Release 3 server. [From Hotfix XE103W2K3011][#71364] 29. If Connect Client Printers at Logon was not checked, users either were completely unable to map client printers or could not see any of the UPD printers available when connecting to a printer. A misplaced initialization of the Metafile drivers caused the drivers to be unavailable. This hotfix enables the Metafile drivers; client users can now map to any client printer. [From Hotfix XE103W2K3011][#73621, #73769] 30. When an application running in seamless mode became unresponsive, users sometimes could not switch to other applications that were running in seamless mode also. Clicking the taskbar icon or using the Alt-Tab sequence did not work. The server seamless engine was using an API that did not return if the target application was unresponsive. This fix provides additional routines that will call only those applications that are responding. Users can switch to other applications even if one is unresponsive. [From Hotfix XE103W2K3026][#76070] 31. MetaFrame XP was bypassing any application limits set in the Management Console for pass-through connections. A global variable was not being properly set in pass-through connections. The global variable is now set correctly and MetaFrame adheres to any application limits set in the Management Console for pass-through connections. [From Hotfix XE103W2K3026][#77372] 32. If session sharing was disabled, client-to-server redirection failed because applications with command lines that contained spaces in the paths were not being launched. This fix ensures that client-to-server redirection will work even if session sharing is disabled. [From Hotfix XE103W2K3026][#79331] 33. The server-side wallpaper appeared occasionally for a short time when a seamless window was closed. There was a slight delay between the time the window was closed and the seamless engine notified the client that the window was closed. During that time, the client-side engine tried to update the window that was already closed, resulting in the brief appearance of the server-side wallpaper. This fix ensures that the seamless engine immediately detects that the window is closed and the server-side wallpaper no longer appears. [From Hotfix XE103W2K3026][#80221] 34. The display speed of the combo list box became very slow if the list box expanded beyond the area of the background window. The seamless routine that checked to determine whether or not the target window was a top-level window ignored the window, causing a delay in the dispaly of the window. A new API is now used to determine whether or not the target window is a top-level window. The combo list box appears as quickly as other types of windows in a seamless session. [From Hotfix XE103W2K3026][#83550] 35. When the following registry entry was set, Sehook20.dll was still loaded in the session: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Wfshell\TWI Type: REG_DWORD Data: SeamlessFlags=0x4 In certain situations the registry entry was ignored, causing Sehook20.dll to be loaded despite the registry setting. This hotfix ensures that the registry entry is used to determine whether or not to load Sehook20.dll in the session. [From Hotfix XE103W2K3026]#83555] 36. This fix addresses a custom application's performance when run seamlessly. Some applications appeared to be slower to respond when performing actions such as moving, resizing, or closing windows. This fix introduces two new registry settings that allow administrators to configure an explicit time interval for the seamless engine mechanism to monitor when changes take place in the seamless applications. Create the following two registry keys: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI Key: WorkerWaitInterval Type: REG_DWORD Value: <Number of milliseconds allowed> (Values are between 5 ? 500; the default is 50.) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI Key: WorkerFullCheckInterval Type: REG_DWORD Value: <Number of milliseconds allowed> (Values are between 50 ? 5000; the default is 500.) For both values, a larger size slows responsiveness but improves scalability; a smaller size increases responsiveness but decreases scalability slightly. The level of scalability depends on several factors, such as hardware sizing, types of applications, network performance, and number of users. [From Hotfix XE103W2K3035][#85657] 37. Some custom applications that did not display properly when running on Windows XP/2003 with the Windows XP Theme enabled sometimes saw the same behavior when running as a seamless application on MetaFrame XP Feature Release 3 on Windows 2003 that does not have the Windows XP Theme enabled. For example, the title bar of the application is larger in height. Starting with MetaFrame XP Feature Release 3 for Windows 2000/2003, the server seamless engine has extended support for certain window style properties of the workstation where the seamless application is running; for example, the styles generated by Windows XP Themes. This hotfix introduces a new seamless global registry flag that, when set, instructs the server-side seamless engine not to read certain client workstation window style information. Set the following server-side registry key to instruct the server seamless engine not to synchronize with the client's window style that pertains to those representative of the Windows XP Theme: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI Name: SeamlessFlags Type: REG_DWORD Value: 0x4000 Custom applications that do not display properly when running on Windows XP/2003 with the Windows XP Theme enabled can be run in a seamless session from a workstation that has the Windows XP Theme enabled and be displayed using the Windows Classic style. Note: This applies only when the Windows 2003 server on which MetaFrame is installed does not have Windows XP Theme enabled. If it is enabled, Theme support is the default whether users log on to the server through the console, through a desktop session, or seamlessly. [From Hotfix XE103W2K3035][#87052] 38. If users attempted to access a Web site through Start > Run with a URL that was longer than 256 characters (in some cases longer than 202 characters), the correct Web page appeared but Wfshell experienced a fatal error. This problem occurred because of a buffer overrun in handling the URL. With this fix, when a URL longer than the allowed character limit is pasted into Start > Run, Internet Explorer is launched and Wfshell remains running without experiencing a fatal error. [From Hotfix XE103W2K3037][#87825] Installation Instructions Note: This hotfix is packaged with Microsoft Windows Installer. You can deploy the hotfix package to a group of servers using Microsoft Active Directory Group Policy Object or using Citrix Installation Manager. For more information, see the Citrix server Administrator?s Guide or the Citrix Installation Manager Administrator?s Guide. 1. Download the hotfix package from the Hotfixes and Service Packs page of the Citrix Web site at http://www.citrix.com. 2. Copy the hotfix package to an empty directory on the hard drive of the MetaFrame server. 3. Close all applications. 4. Run the executable. 5. Shut down and restart the server. Note: To install this hotfix silently, use the /q option after the executable. For example: msiexec /I XE103W2K3037.MSI /q Using the /q option without additional options automatically restarts the server. For additional information about msiexec, see the Microsoft Web site at http://www.microsoft.com. Search on keyword msiexec. Uninstallation Instructions 1. From the Start menu, select Setting > Control Panel. 2. In Control Panel, double-click Add/Remove Programs. 3. Highlight the hotfix you want to uninstall and click Remove. 4. Follow the directions on-screen. Files Updated Hotfix.exe 74,000 04/28/2003 01:55p Chgcdm.exe 69,632 05/28/2004 08:02p Ctxnotif.dll 102,400 05/28/2004 08:02p Ctxrpc.dll 20,104 05/28/2004 08:02p Printcfg.exe 118,784 05/28/2004 08:02p Iexplore.exe 32,768 05/28/2004 08:02p Seamls20.dll 57,344 05/28/2004 08:02p Sehook20.dll 15,360 05/28/2004 08:02p Wfshell.exe 94,208 05/28/2004 08:02p Wsxica.dll 176,264 05/28/2004 08:02p ******************************************************** This weeks sponsor Emergent Online Thinssentials Utilities Using the latest software, hardware, networking technologies, proven technical expertise, proprietary software and best practices, EOL provides custom-tailored solutions for each client?s mission and specific goals. http://www.go-eol.com ********************************************************** Useful Thin Client Computing Links are available at: http://thin.net/links.cfm *********************************************************** For Archives, to Unsubscribe, Subscribe or set Digest or Vacation mode use the below link: http://thin.net/citrixlist.cfm