[THIN] KB: CTX108614 - Time Zone Redirection and Legacy Applications

  • From: "Jim Kenzig http://ThinHelp.com" <jkenzig@xxxxxxxxx>
  • To: thin@xxxxxxxxxxxxx
  • Date: Fri, 20 Jan 2006 10:23:57 -0800 (PST)

CTX108614 - Time Zone Redirection and Legacy Applications 
  This document was published at: http://support.citrix.com/article/CTX108614 
    Document ID: CTX108614, Created on: Jan 18, 2006, Updated: Jan 19, 2006   
Products: Citrix Presentation Server 4.0 for Microsoft Windows 2003, Citrix 
Presentation Server 4.0 for Microsoft Windows 2000, Citrix MetaFrame XP 1.0 for 
Microsoft Windows 2003, Citrix MetaFrame XP 1.0 for Microsoft Windows 2000, 
Citrix MetaFrame Presentation Server 3.0 for Microsoft Windows 2003, Citrix 
MetaFrame Presentation Server 3.0 for Microsoft Windows 2000 
               Symptoms
  The Time Zone Redirection feature in MetaFrame XP 1.0, MetaFrame Presentation 
Server 3.0, and Citrix Presentation Server 4.0 may not work for certain 
applications that do not load User32.dll.
  Cause
  The current implementation of the MetaFrame Time Zone redirection feature is 
based on Microsoft?s Windows Hooking capabilities. In an ICA session, certain 
calls made by an application process to the Windows operating system to 
retrieve Time and Time Zone information are intercepted and answered by the 
MetaFrame server?s Time Zone components.
  In order for these components to work, an application must load the Windows 
User32.dll file.
  This DLL must be loaded, in order to enumerate the following registry key: 
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
  One of the values in this registry key is: AppInit_DLLs
  This value needs to be read in order to load the core MetaFrame hooking file, 
mfaphook.dll, into the process space of an application process. This then 
allows other components to be loaded that provide MetaFrame specific 
functionality, such as Time Zone Redirection. 
  For more information on mfaphook.dll, refer to 
  CTX107824 ? Citrix API Hooks (mfaphook.dll) Explained and Enumerated.
  Resolution
  The following suggestion is more applicable to programs that are not GUI 
based, written in C/C++, and probably written some time ago. Whereas most GUI 
based applications will automatically load User32.dll.
  Since the challenge is to get the application process to load User32.dll, an 
easy way would be to call one of the Exported functions of this DLL ? for 
example GetTopWindow(NULL); 
  Another method would be to actually use the Windows API LoadLibraryEx(), and 
load the DLL.
  More Information
  CTX303498 ? Troubleshooting Client Time Zone Issues In MetaFrame XP.




Jim Kenzig 
CEO The Kenzig Group
http://www.kenzig.com
Sponsorships Available!
Blog: http://www.techblink.com
Terminal Services Downloads: http://www.thinhelp.com
Windows Vista: http://www.VistaPop.com
Virtualization: http://www.virtualize-it.com
Games: http://www.stressedpuppy.com

Other related posts:

  • » [THIN] KB: CTX108614 - Time Zone Redirection and Legacy Applications