64 位 Windows 是否使用 KERNEL64?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1364741/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 06:41:21  来源:igfitidea点击:

Does 64-bit Windows use KERNEL64?

windowsdll64-bitsystems-programming

提问by Dana Robinson

I was looking at some libraries with dumpbin and I noticed that all the 64-bit versions were linked to KERNEL32. Is there no KERNEL64 on 64-bit Windows? If not, why?

我正在查看一些带有 dumpbin 的库,我注意到所有 64 位版本都链接到 KERNEL32。64 位 Windows 上没有 KERNEL64 吗?如果不是,为什么?

All my operating systems are 32-bit so I can't just look. A google search brings up nothing worthwhile so I suspect that there is no KERNEL64 but I'm still curious as to why this is.

我所有的操作系​​统都是 32 位的,所以我不能只看。谷歌搜索没有带来任何有价值的东西,所以我怀疑没有 KERNEL64 但我仍然很好奇这是为什么。

EDIT: I found this later which is pretty useful. MSDN guide to x64

编辑:我后来发现这个非常有用。 MSDN x64 指南

回答by Ben Straub

It's always called kernel32.dll, even on 64-bit windows. This is for the same compatibility reasons that system32contains 64-bit binaries, while syswow64contains 32-bit binaries.

它总是被称为kernel32.dll,即使在 64 位 Windows 上也是如此。这是出于相同的兼容性原因,system32包含 64 位二进制文​​件,同时syswow64包含 32 位二进制文​​件。

回答by Padma Yeddula

On the 64-bit versions of Windows one of the "kernel32.dll"s contains 64-bit code but is still called kernel32.dll. This is at least misleading

在 64 位版本的 Windows 上,“kernel32.dll”之一包含 64 位代码,但仍称为 kernel32.dll。这至少是误导

Hope the following links will give the solution for this

希望以下链接将为此提供解决方案

http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html

http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html

http://www.viva64.com/en/l/0002/

http://www.viva64.com/en/l/0002/

http://blogs.msdn.com/b/aaron_margosis/archive/2012/12/10/using-ntfs-junctions-to-fix-application-compatibility-issues-on-64-bit-editions-of-windows.aspx

http://blogs.msdn.com/b/aaron_margosis/archive/2012/12/10/using-ntfs-junctions-to-fix-application-compatibility-issues-on-64-bit-editions-of-windows。 aspx

64-bit Windows provides such an environment "out of the box" and supports 32-bit applications using the 'Windows on Windows 64' subsystem, abbreviated to WOW64, which runs in user mode and maps the 32-bit calls to the operating system kernel into an equivalent 64-bit call. This is normally almost invisible to the calling program.Windows provides a set of 64-bit DLLs in %windir%\system32 and an equivalent set of 32-bit DLLs in %windir%\syswow64. In fact the bulk of the binary images in this directory are identical to the same files in the system32 directory on a 32-bit Windows installation. (It seems to me an unfortunate naming issue that the 64-bit DLLs live in system32 and the 32-bit ones live in syswow64, but there it is)

64 位 Windows 提供了这样一个“开箱即用”的环境,并支持使用“Windows on Windows 64”子系统(缩写为 WOW64)的 32 位应用程序,该子系统在用户模式下运行并将 32 位调用映射到操作系统内核转换为等效的 64 位调用。这通常对调用程序几乎不可见。Windows 在 %windir%\system32 中提供了一组 64 位 DLL,在 %windir%\syswow64 中提供了一组等效的 32 位 DLL。实际上,此目录中的大部分二进制映像与 32 位 Windows 安装中 system32 目录中的相同文件相同。(在我看来,64 位 DLL 存在于 system32 中,而 32 位 DLL 存在于 syswow64 中,这似乎是一个不幸的命名问题,但确实存在)