Wow64DisableWow64FsRedirection 函数 (wow64apiset.h)
禁用调用线程的文件系统重定向。 默认已启用文件系统重定向。
语法
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
参数
[out] OldValue
WOW64 文件系统重定向值。 系统使用此参数来存储还原 (重新启用) 文件系统重定向所需的信息。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
此函数适用于想要访问本机 system32 目录的 32 位应用程序。 默认情况下,WOW64 文件系统重定向处于启用状态。
Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection 函数配对取代了 Wow64EnableWow64FsRedirection 函数的功能。
若要还原文件系统重定向,请调用 Wow64RevertWow64FsRedirection 函数。 每次成功调用 Wow64DisableWow64FsRedirection 函数都必须具有对 Wow64RevertWow64FsRedirection 函数的匹配调用。 这将确保重新启用重定向并释放关联的系统资源。
在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。
技术 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 否 |
SMB 3.0 透明故障转移 (TFO) | 否 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 否 |
群集共享卷文件系统 (CSV) | 是 |
弹性文件系统 (ReFS) | 否 |
示例
以下示例使用 Wow64DisableWow64FsRedirection 禁用文件系统重定向,以便 WOW64 下运行的 32 位应用程序可以在 %SystemRoot%\System32 中打开 64 位版本的 Notepad.exe,而不是重定向到 %SystemRoot%\SysWOW64 中的 32 位版本。
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0501
#ifdef NTDDI_VERSION
#undef NTDDI_VERSION
#endif
#define NTDDI_VERSION 0x05010000
#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 critical 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
}
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista、Windows XP Professional x64 Edition [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008、Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | wow64apiset.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈