Freigeben über


Wow64EnableWow64FsRedirection-Funktion (wow64apiset.h)

Aktiviert oder deaktiviert die Dateisystemumleitung für den aufrufenden Thread.

Diese Funktion funktioniert möglicherweise nicht zuverlässig, wenn geschachtelte Aufrufe vorhanden sind. Daher wurde diese Funktion durch die Funktionen Wow64DisableWow64FsRedirection und Wow64RevertWow64FsRedirection ersetzt.

Hinweis Diese beiden Methoden zur Steuerung der Dateisystemumleitung können in keiner Weise kombiniert werden. Verwenden Sie die Wow64EnableWow64FsRedirection-Funktion weder mit der Wow64DisableWow64FsRedirection noch mit der Wow64RevertWow64FsRedirection-Funktion .
 

Syntax

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Parameter

Wow64FsEnableRedirection

Gibt den Anforderungstyp für die WOW64-Systemordnerumleitung an. Wenn TRUE, wird die Anforderungsumleitung aktiviert; wenn FALSE, wird die Anforderungsumleitung deaktiviert.

Rückgabewert

Boolescher Wert, der angibt, ob die Funktion erfolgreich war. Wenn TRUE, war die Funktion erfolgreich; wenn FALSE, ist die Funktion fehlgeschlagen.

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.

Hinweis Die Wow64EnableWow64FsRedirection-Funktion wirkt sich auf alle Dateivorgänge aus, die vom aktuellen Thread ausgeführt werden, was unbeabsichtigte Folgen haben kann, wenn die Dateisystemumleitung für einen beliebigen Zeitraum deaktiviert ist. Beispielsweise hängt das Laden von DLL von der Dateisystemumleitung ab, sodass das Deaktivieren der Dateisystemumleitung dazu führt, dass das Laden der DLL fehlschlägt. Außerdem verwenden viele Featureimplementierungen verzögertes Laden und schlagen fehl, während die Umleitung deaktiviert ist. Der Fehlerzustand des anfänglichen Verzögerungsladevorgangs wird beibehalten, sodass bei jeder nachfolgenden Verwendung der Verzögerungsladefunktion auch dann ein Fehler auftritt, wenn die Dateisystemumleitung wieder aktiviert wurde. Um diese Probleme zu vermeiden, deaktivieren Sie die Dateisystemumleitung unmittelbar vor Aufrufen bestimmter Datei-E/A-Funktionen (z. B. CreateFile), die nicht umgeleitet werden dürfen, und aktivieren Sie die Dateisystemumleitung unmittelbar danach mithilfe von Wow64EnableWow64FsRedirection(TRUE)erneut.
 
Die Dateiumleitung ist nur für den Thread aktiviert oder deaktiviert, der diese Funktion aufruft. Dies betrifft nur Vorgänge, die vom aktuellen Thread ausgeführt werden. Einige Funktionen, z. B . CreateProcessAsUser, führen ihre Arbeit in einem anderen Thread aus, der nicht vom Zustand der Dateisystemumleitung im aufrufenden Thread betroffen ist.

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

#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;

  //  Disable redirection immediately prior to the native API
  //  function call.
  if( Wow64EnableWow64FsRedirection(FALSE) ) 
   {
    //  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 == Wow64EnableWow64FsRedirection(TRUE) )
     {
      //  Failure to re-enable redirection should be considered
      //  a critical failure and execution aborted.
      return;
     }
   }
    
  // The handle, if valid, can be used as usual without
  // leaving redirection disabled.
 
  if( INVALID_HANDLE_VALUE != hFile )  
   {
    // Use the file handle
   }
 }

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wow64apiset.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Dateiverwaltungsfunktionen

Dateisystemumleitung

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection