-
-
[原创][Windows核心编程]32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]
-
发表于:
2009-5-22 00:58
4899
-
[原创][Windows核心编程]32bit程序在64bit操作系统下处理重定向细节_注册表操作[2]
在阅读此文章之前,可以先阅读之前的文章
[Windows核心编程]32bit程序在64bit操作系统下处理重定向细节[1]
http://bbs.pediy.com/showthread.php?p=625419#post625419
最近又有一个32bit的程序需要在Windows 64bit操作系统下对注册表操作进行兼容。
经过实践,在此写下心得。
备注: 此32bit的程序是 DELPHI 程序
1> Delphi程序的TRegistry类无法对KEY_WOW64_64KEY 兼容。也就是说,TRegistry.Create(KEY_WOW64_64KEY or KEY_ALL_ACCESS) 这样是无效的。
2> SHDeleteKey这类Shellapi 对 KEY_WOW64_64KEY 不兼容。也就是说就算你关闭重定位机制,也无法对64bit的注册表操作。一律全部重定位到Wow64xxx 的位置。
这是因为这类API没有KEY_WOW64_64KEY这个标志为的设置
3> 针对RegDeleteKeyEx这类带有Ex的注册表函数,不管你是否显示关闭和打开重定位机制,只要在参数设置KEY_WOW64_64KEY 或者 KEY_WOW32_32KEY 就可以直接操作 64BIT 或者 32BIT的注册表了。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)