Wow64DisableWow64FsRedirection-Funktion (wow64apiset.h)
Deaktiviert die Dateisystemumleitung für den aufrufenden Thread. Die Dateisystemumleitung ist standardmäßig aktiviert.
Syntax
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
Parameter
[out] OldValue
Der WOW64-Dateisystemumleitungswert. Das System verwendet diesen Parameter, um Informationen zu speichern, die für rückgängig machen Dateisystemumleitung erforderlich sind.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Nichtzero-Wert.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Diese Funktion ist nützlich für 32-Bit-Anwendungen, die Zugriff auf das systemeigene System32-Verzeichnis erhalten möchten. Standardmäßig ist die WOW64-Dateisystemumleitung aktiviert.
Das Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection-Funktionspaar ist ein Ersatz für die Funktionalität der Wow64EnableWow64FsRedirection-Funktion .
Um die Dateisystemumleitung wiederherzustellen, rufen Sie die Funktion Wow64RevertWow64FsRedirection auf . Jeder erfolgreiche Aufruf der Wow64DisableWow64FsRedirection-Funktion muss einen übereinstimmenden Aufruf der Wow64RevertWow64FsRedirection-Funktion aufweisen. Dadurch wird sichergestellt, dass die Umleitung wieder aktiviert wird und zugeordnete Systemressourcen freigegeben werden.
Unter Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
SMB 3.0-Protokoll (Server Message Block) | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) | No |
Dateisystem mit freigegebenen Clustervolumes (CsvFS) | Ja |
Robustes Dateisystem (Resilient File System, ReFS) | Nein |
Beispiele
Im folgenden Beispiel wird Wow64DisableWow64FsRedirection verwendet, um die Dateisystemumleitung zu deaktivieren, sodass eine 32-Bit-Anwendung, die unter WOW64 ausgeführt wird, die 64-Bit-Version von Notepad.exe in %SystemRoot%\System32 öffnen kann, anstatt zur 32-Bit-Version in %SystemRoot%\SysWOW64 umgeleitet zu werden.
#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
}
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP Professional x64 Edition [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008, Windows Server 2003 mit SP1 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wow64apiset.h (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |