Technical Details of 64-bit Citrix Presentation Server

Citrix released the 64-bit version of Presentation Server last month. In this article, I don't want to talk about "why" you should move to 64-bit Citrix Presentation Server since I've done that before (here and here).

Citrix released the 64-bit version of Presentation Server last month. In this article, I don't want to talk about "why" you should move to 64-bit Citrix Presentation Server since I've done that before (here and here). Instead, I'll talk about the actual mechanics of what 64-bit Presentation Server looks like and how it works.

First, Microsoft released the 64-bit version of Windows earlier this year (along with SP1), so it's a real product that you can use today. Second, pretty much every new server bought in the past year or so runs one of those new 32/64-bit hybrid processors that can run the 64-bit version of Windows 2003. So the chances are good that you can move to 64-bit Windows right now just by installing it.

Citrix Presentation Server 4.0 64-bit Basics

Citrix licenses their Presentation Server software based on user connections, so if you buy 100 user connections you can use any combination of servers (Windows, UNIX, etc.) on the back-end to support them. The good news is that this also applies to the 64-bit version of Presentation Server. You don't need to license anything in addition to what you already have. Just login to myCitrix and download the 64-bit ISO image and start adding 64-bit servers to your existing farms.

In terms of the network and communication with other servers, 64-bit Presentation Server is no different than 32-bit Presentation Server. You can install 64-bit Presentation Servers into the same farm, zone, or load-balancing group as existing 32-bit servers. You can use 64-bit PS with 32-bit Secure Gateways, Web Interfaces, or License Servers. Users can simultaneously connect to sessions on 32 and 64-bit servers (and share the same connection license if both Presentation Servers are pointed at the same license server), and you can simultaneously manage user sessions and server settings on both platforms with all the Citrix management tools.

The Internals of 64-bit Presentation Server

So now that we know that a 64-bit server can drop right in to you existing environment without any problem, let's take a look at the internals of a 64-bit server itself. First of all, one of the benefits of 64-bit Windows 2003 is that it can run 32 and 64-bit applications side-by-side without any negative performance. (Okay, maybe there is some performance hit because the 64-bit Windows uses a 46-bit memory address (no, that's not a typo, it's a "46" bit memory address, not "64"), but it's very minimal and might be cancelled out by the fact that the architecture is 64-bit anyway.) So the whole excuse of "there aren't any 64-bit apps yet" just doesn't really hold water in the Terminal Server world.

However, even though 64-bit Windows can run 32-bit applications, there are some components that must be 64-bit. For example, device drivers (including printer drivers) and other kernel-mode components must be 64-bit.

This means that for the most part, Citrix didn't have to change much to make Presentation Server work on 64-bit Windows. In fact, the IMA Service is still 32-bit and works fine. Same goes for the XTE Service and all of those little command-line utilities. ("querydc," "dsmaint," etc.)

However, all the drivers, the Citrix GINA, the ICA protocol driver, the MMC snap-ins, and the new printer subsystem had to be rewritten and recompiled as 64-bit applications.

One of the peculiarities of 64-bit Windows is that 64-bit applications can only load 64-bit DLLs (which makes sense), and 32-bit applications and only load 32-bit DLLs. This means that 64-bit Presentation Server actually has both 32 and 64-bit versions of many DLLs.

There were also some 32-bit components that would've taken some rework to make functional on 64-bit Windows that Citrix decided weren't worth the effort. (Who can blame them?) So 64-bit Presentation Server will usher in the retirement of the auto client update database, the client distribution wizard, and SecureICA. (SecureICA was the 1990s-era ICA-based encryption that's not really used anymore in today's world of SSL and TLS.)

With that, you can imagine that 64-bit Presentation Server is pretty much ready for mainstream use. There are a few features that Citrix still cannot directly support until some of the other vendors get their acts together, such as NDS integration (no 64-bit NDS client from Novell yet), smart card integration (no 64-bit smart card device drivers from those vendors yet), SNMP management (same story), and the Phillips SpeechMike audio transcribing (again, same story). But other than that, 64-bit Citrix is a reality today!

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Citrix ICA Mark testing showed you can host ~60% more users on the 64-bit platform, due to better handling of user's PagedPool and PTE. A comparison between Windows 2003 (32bit) with Citrix MetaFrame XP FR3 and Windows 2003 (64bit) with Citrix Presentation Server 4.0 shows you can host ~180% more users on the latter.

Hosting more users on less servers increases efficiency in terms of the number of servers to maintain.

subsequently, rad
Hello Brian,

What are your suggestions for Antivirus and printing in the 64-bit world? I believe ThinPrint has a 64-bit version, but I have not used it.
Symantec Antivirus Corporate Edition 10.0 and above have a 64-bit version for x64.

Mcafee 8.x (32 bit) runs in 64 bit OS without any issue
I tried to build a farm on 64 bit windows, but came accross device drivers issues. I could not, for the life of me find a 64 bit driver for HP 4250, and Lexmark T630. My client has quite a number of these printers. Since the print server is Windows2003 32 bit, I cannot load alternative drivers from the Media CD, and need the actual files.
The interesting thing about HP 4250 is that there is a 64 bit driver on the website, but it doesnt work, and HP is aware of it !!!!!!!!!. They still choose not to pull it from their website, just so they can claim that all their printers are 64 bit ready.
I have the similar issue. Currently I am checking out the MPS4 on a x64 platform. The print server is 32 bit win2003. Can't find the printer drivers ( i havent spent a lot of time though) that can go on the x64 server. Any suggestions?
After some extensive testing we found that the HP4100 PCL driver works for both HPs and Lexmarks.
Universal Print Driver works!  We have an older HP5000 Series plotter that there are no 64 drivers available.  I was able to use the UPD and print a full color map without issue.


Just trying to do some research.  We are running Citrix Metaframe in a 32 bit Environment.  We recently purchased 64bit laptops and the ICA client installs without problems... but fails to load once you launch the application.  It opens, but then just stops loading.  No errors.  Any ideas?



Hi Brian

In this section copied below you say 64Bit windows uses a 46bit memory address:

(Okay, maybe there is some performance hit because the 64-bit Windows uses a 46-bit memory address (no, that's not a typo, it's a "46" bit memory address, not "64")

I always thought Windows Server 2003  64bit  uses 64bit memory addresses. So for example when you get a 64bit blue screen of death you get a 8byte (64bit memory address) memory address. E.g. 00 11 22 33 AA BB CC DD (hex).

Additionally the Intel x64 opcodes support 64bit memory addresses. So the 3 examples of MOV below show 16, 32 and 64bit moves e.g:

A1 MOV AX,moffs16*  Move word at (seg:offset)

to AX.

A1 MOV EAX,moffs32*  Move doubleword at

(seg:offset) to EAX.

REX.W + A1 MOV RAX,moffs64  Move quadword at (offset) to RAX.

Notice the 64bit MOV does not use a seg:offset it just uses an offset because with a 64bit address you could (potentially - although of course MS 64bit W2k3/8 DC edition supports only 2TB RAM) address:

2^64 18,446,744,073,709,600,000.00 bits 2,305,843,009,213,690,000.00 bytes 2,251,799,813,685,250.00 Kilo bytes 2,199,023,255,552.00 Mega bytes 2,147,483,648.00 Giga bytes 2,097,152.00 Tera bytes

2,048.00 Peta bytes

Do you have any references to Windows 2003 / 2008 using 46bit memory addresses? I would be interested in having a read.