Articles of wow64

为什么os.path.exists(“C:\\ windows \\ system32 \\ inetsrv \\ metaback”)即使存在也会返回False?

我有一个Python程序,应该清理一些目录,其中一个是C:\windows\system32\inetsrv\metaback ; 然而, os.path.exists()在该目录上返回False,即使它存在(并且我有权访问它)。 有趣的是windirstat工具也完全错过了它。 任何人都可以想到一个原因,为什么这可能是另一种方式,我可以检查,看看它是否存在? 我似乎甚至不能运行os.listdir()就可以了。 更新:如果Windows框是32位的,则os.path.exists()在该目录上工作,但如果是64位,则不起作用。 windirstat在一个32位的盒子上也显示正确。

WOW64困境(.lnk快捷键)

我使用的是Windows 7(x64)和Delphi 2010。 我在写一个模拟开始菜单的组件。 但是,我遇到了以下问题: 如果我尝试用ShellExecute打开一个快捷方式(.lnk文件),只要%ProgramFiles%是快捷方式的目标path的一部分,就会失败(它将查看C:\ Program Files(x86)文件夹而不是C :\ Program Files ); 如果%ProgramFiles%是图标文件path的一部分(与上面相同的问题),则ShGetFileInfo无法提取系统图像列表中图标的正确索引。 有没有解决上述问题,或者我必须等待本地64位delphi可用于此工作?

32位程序在64位操作系统上运行相对较慢,而不是在32位操作系统上本地运行

我在这里阅读关于WOW 64 http://en.wikipedia.org/wiki/WOW64 并了解到其在64位Windows操作系统上的一层运行32位程序。 所以,我可以假设32位程序在64位操作系统上相对较慢运行,而不是在32位操作系统本地运行。 我可以看到64位操作系统内存超过4 GB的优点。 但是这个优势是否必然抵消了WOW64层所增加的小额开销呢? 是否还有其他64位的优势抵消了这一点。

一个64位操作系统上的32位进程访问可以有多less内存?

在Windows上,正常情况下一个32位的进程只能访问2GB的RAM(或boot.ini文件中的特殊开关3GB)。 在64位操作系统上运行32位进程时,有多less内存可用? 有任何特殊的开关或设置可以改变这一点吗?

如何从32位WOW进程中枚举64位进程中的模块

我有一个要求在Windows 32位WOW进程中检索一个64位进程的所有模块, EnumProcessModules将失败,如下所述: 如果从在WOW64上运行的32位应用程序调用此函数,则只能枚举32位进程的模块。 如果进程是64位进程,则此函数失败,最后一个错误代码为ERROR_PARTIAL_COPY(299)。 至于EnumProcessModulesEx和CreateToolhelp32Snapshot。 你有什么想法如何实现它? 谢谢。

我怎样才能共享Win 32中的32位和64位应用程序的HWND?

MSDN告诉我,在进程间通信 (MSDN)中,窗口句柄(HWND)可以在32位和64位应用程序之间共享。 但是,在Win32中,HWND是32位,而在64位Windows中是64位。 那么如何分享手柄呢? 我想同样的问题适用于处理命名对象,如互斥,信号量和文件句柄。