标签:控制 Wow64 HANDLE 重定向 redirection OldValue NULL hFile
参考:https://blog.csdn.net/karlxzy/article/details/42170419
在默认情况下,64位环境运行32位程序,会启用重定向,
比如 调用CreateFile时,系统会把system32文件夹重定向到Syswow64等等。
但是有些时候需要访问system32文件夹的时候就需要关闭重定向。
MS已经提供了一组函数用来控制重定向:
Wow64EnableWow64FsRedirection
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection
用法在MSDN里面有DEMO:
- #define _WIN32_WINNT 0x0501
- #include <Windows.h>
- void main()
- {
- HANDLE hFile = INVALID_HANDLE_VALUE;
- PVOID OldValue = NULL;
- // Disable redirection immediately prior to the native API
- // function call.
- if( Wow64DisableWow64FsRedirection(&OldValue) )
- {
- // Any function calls in this block of code should be as concise
- // and as simple as possible to avoid unintended results.
- hFile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"),
- GENERIC_READ,
- FILE_SHARE_READ,
- NULL,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
- // Immediately re-enable redirection. Note that any resources
- // associated with OldValue are cleaned up by this call.
- if ( FALSE == Wow64RevertWow64FsRedirection(OldValue) )
- {
- // Failure to re-enable redirection should be considered
- // a criticial failure and execution aborted.
- return;
- }
- }
- // The handle, if valid, now can be used as usual, and without
- // leaving redirection disabled.
- if( INVALID_HANDLE_VALUE != hFile )
- {
- // Use the file handle
- }
- }
标签:控制,Wow64,HANDLE,重定向,redirection,OldValue,NULL,hFile 来源: https://www.cnblogs.com/kuangke/p/14702551.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。