Partager via


Fonction Wow64EnableWow64FsRedirection (wow64apiset.h)

Active ou désactive la redirection du système de fichiers pour le thread appelant.

Cette fonction peut ne pas fonctionner de manière fiable en cas d’appels imbriqués. Par conséquent, cette fonction a été remplacée par les fonctions Wow64DisableWow64FsRedirection et Wow64RevertWow64FsRedirection .

Note Ces deux méthodes de contrôle de la redirection du système de fichiers ne peuvent en aucun cas être combinées. N’utilisez pas la fonction Wow64EnableWow64FsRedirection avec la fonction Wow64DisableWow64FsRedirection ou wow64RevertWow64FsRedirection .
 

Syntaxe

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Paramètres

Wow64FsEnableRedirection

Indique le type de requête pour la redirection de dossiers système WOW64. Si la valeur EST TRUE, la redirection des demandes est activée ; si la valeur est FALSE, la redirection des demandes est désactivée.

Valeur retournée

Valeur booléenne indiquant si la fonction a réussi. Si la valeur EST TRUE, la fonction a réussi ; si la valeur EST FALSE, la fonction a échoué.

Remarques

Cette fonction est utile pour les applications 32 bits qui souhaitent accéder au répertoire system32 natif. Par défaut, la redirection du système de fichiers WOW64 est activée.

Note La fonction Wow64EnableWow64FsRedirection affecte toutes les opérations de fichier effectuées par le thread actif, ce qui peut avoir des conséquences inattendues si la redirection du système de fichiers est désactivée pendant une durée quelconque. Par exemple, le chargement de DLL dépend de la redirection du système de fichiers. Par conséquent, la désactivation de la redirection du système de fichiers entraîne l’échec du chargement de DLL. En outre, de nombreuses implémentations de fonctionnalités utilisent un chargement différé et échouent lorsque la redirection est désactivée. L’état d’échec de l’opération de report-chargement initial est persistant, de sorte que toute utilisation ultérieure de la fonction delay-load échoue même après que la redirection du système de fichiers est réactivée. Pour éviter ces problèmes, désactivez la redirection du système de fichiers immédiatement avant les appels à des fonctions d’E/S de fichiers spécifiques (telles que CreateFile) qui ne doivent pas être redirigées, et réactivez la redirection du système de fichiers immédiatement après à l’aide Wow64EnableWow64FsRedirection(TRUE)de .
 
La redirection de fichiers est activée ou désactivée uniquement pour le thread appelant cette fonction. Cela affecte uniquement les opérations effectuées par le thread actif. Certaines fonctions, telles que CreateProcessAsUser, effectuent leur travail sur un autre thread, qui n’est pas affecté par l’état de la redirection du système de fichiers dans le thread appelant.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 No
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Non

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wow64apiset.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de gestion des fichiers

Redirecteur du système de fichiers

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection