I will stipulate that 64-bit is the future

by Michael S. Kaplan, published on 2005/10/06 15:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/10/06/477930.aspx


In the past week, I have had three different people ask me about MSKLC and x64 support, the most recent from a colleague just down the hall from me. I figured it might be time to explain a bit further than I did in this post. So here goes....

Let us stipulate for a moment that 64-bit computing is indeed where we are all heading, generally.

(I am not disagreeing with the idea, I am just trying to house my argument in correct legal language!)

So what is up with MSKLC?

Well, currently is does not support either IA64 or X64 processors. A fact that has more to do with some unrelated factors about the core purpose of MSKLC when it was conceived, which was to "open it all up" and "get out of the way" when it came to language enablement on Windows.

Although being able to create new keyboards for accessibility reasons (for example) was made possible, that is merely a side effect of the two disciplines having overlapping requirements. The similarities were not enough for the accessibility team to create an On-Screen Keyboard that would fit all of the languages we have built in, or enough for the accessibility problems in MSKLC that Sara Ford pointed out to me to have been fixed before we shipped (don't worry, I am on them for next version!).

In summary, you end up with differences.

At the time that MSKLC came out, AMD64 compilers were just getting usable, nobody even had the term x64, and even though there was an IA64 client space, it was already squarely aimed at the server space as its main target. Were there people with vision? Of course! But that vision was not as broadly spread to everyone just yet. So when you look at our core MSKLC purpose, it just did not mesh at that time.

Of course, times change, and the landscpe for x64 is very different now than it was a few years ago. Which makes the wider scenario more potentially interesting.

Now what goes into the change? Pretty much two things:

  1. A 64-bit keyboard to go into the %WINDIR%\System32 directory
  2. A special 32-bit keyboard to go into the %WINDIR%\SysWOW64 directory

"What is so special about #2?" some may ask, especially when that directory has over 1,000 files in it on an x64 machine. But the truth is that there are only about 174 files (in the x64 Windows that just shipped) that are built differently than the regular x86 files, and of those 174 files, 123 of them are keyboard layout DLLs. The problem has to do with the info I started discussing in this post and never got back to, the fact that most keyboard layouts export one function and that function returns the raw data about the layout. On a 64-bit platform, the pointers must be wider than reular 32-bit pointers, so just like core files (kernel32.dll, user32.dll, etc.) special versions of the keyboard layout DLLs are needed. Therefore, for IA64 and x64 to be supported by MSKLC, jt must build both files and put them into the build.


no comments

referenced by

2006/11/17 What happened on Thursday morning?

2006/09/28 If you just don't think you can hold it (64-bit style!)

2006/09/13 MSKLC and Vista? MSKLC and 64-bit? Darn, we're 0 for 2....

2006/06/17 64-bit thoughts, and an apology

2006/01/26 MSKLC and 64-bit

go to newer or older post, or back to index or month or day