C# Registry.CurrentUser和64位

C# Registry.CurrentUser和64位,c#,.net,registry,64-bit,C#,.net,Registry,64 Bit,有人能给我解释一下这个奇怪的结果吗 在linqPad中获得以下代码 Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft").Dump(); Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Microsoft").Dump(); 在process monitor中查看时,如下所示: RegQueryKey HKU\S-1-5-21-.

有人能给我解释一下这个奇怪的结果吗

在linqPad中获得以下代码

Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft").Dump();
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Microsoft").Dump();
在process monitor中查看时,如下所示:

RegQueryKey    HKU\S-1-5-21-...   
RegOpenKey     HKU\S-1-5-21-...\Software\Microsoft   
RegSetInfoKey  HKU\S-1-5-21-...\Software\Microsoft   
RegQueryKey    HKU\S-1-5-21-...\Software\Microsoft   
RegQueryKey    HKU\S-1-5-21-...\Software\Microsoft   
RegQueryKey    HKLM   
RegOpenKey     HKLM\Software\Wow6432Node\Microsoft   
RegSetInfoKey  HKLM\SOFTWARE\Wow6432Node\Microsoft   
RegQueryKey    HKLM\SOFTWARE\Wow6432Node\Microsoft   
RegQueryKey    HKLM\SOFTWARE\Wow6432Node\Microsoft  
我的问题是:
为什么Registry.CurrentUser访问64位和Registry.LocalMachine访问32位?

(还有,为什么Registry.CurrentUser访问
HKU\S-..
而不是
HKCU

使用Windows 7,64位.Net 3.5,
LINQPad.exe*32

如果您查看MSDN,它会说HKCU\Software\Classes是通过WOW64重定向的,而不是整个HKCU\Software密钥重定向的

HKEY_CURRENT_USER           Shared          Shared
    SOFTWARE                Shared          Shared
        Classes             Shared          Redirected and reflected
            Appid           Shared          Redirected and reflected with one exception: the DllSurrogate and DllSurrogateExecutable registry values are not reflected if their value is an empty string.
            CLSID           Redirected      Redirected and reflected
            DirectShow      Redirected      Redirected and reflected
            Interface       Redirected      Redirected and reflected
            Media Type      Redirected      Redirected and reflected
            MediaFoundation Redirected      Redirected and reflected

关于
HKU\S-
vs
HKCU
。。。如果创建Microsoft Word的快捷方式,称为“我的文字处理器”,然后双击它,您希望启动的程序在其标题栏或路径中显示“我的文字处理器”吗
HKCU
只是引用特定
HKU
子项的简写方式。您使用的是哪个版本的LinqPad?CurrentUser是别名,它实际上不存在于物理注册表中。它被重定向到登录用户的HKU。