Compartir a través de


Función Wow64EnableWow64FsRedirection (wow64apiset.h)

Habilita o deshabilita el redireccionamiento del sistema de archivos para el subproceso que llama.

Esta función puede no funcionar de forma confiable cuando hay llamadas anidadas. Por lo tanto, esta función se ha reemplazado por las funciones Wow64DisableWow64FsRedirection y Wow64RevertWow64FsRedirection .

Nota Estos dos métodos de control del redireccionamiento del sistema de archivos no se pueden combinar de ninguna manera. No use la función Wow64EnableWow64FsRedirection con la función Wow64DisableWow64FsRedirection o wow64RevertWow64FsRedirection .
 

Sintaxis

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Parámetros

Wow64FsEnableRedirection

Indica el tipo de solicitud para el redireccionamiento de carpetas del sistema WOW64. Si es TRUE, se habilitará la redirección de solicitudes; si es FALSE, se deshabilita el redireccionamiento de solicitudes.

Valor devuelto

Valor booleano que indica si la función se realizó correctamente. Si es TRUE, la función se realizó correctamente; si es FALSE, se produjo un error en la función.

Comentarios

Esta función es útil para las aplicaciones de 32 bits que desean obtener acceso al directorio nativo system32. De forma predeterminada, el redireccionamiento del sistema de archivos WOW64 está habilitado.

Nota La función Wow64EnableWow64FsRedirection afecta a todas las operaciones de archivo realizadas por el subproceso actual, lo que puede tener consecuencias imprevistas si el redireccionamiento del sistema de archivos está deshabilitado durante cualquier período de tiempo. Por ejemplo, la carga de DLL depende del redireccionamiento del sistema de archivos, por lo que deshabilitar la redirección del sistema de archivos hará que se produzca un error en la carga de DLL. Además, muchas implementaciones de características usan carga retrasada y se producirá un error mientras el redireccionamiento está deshabilitado. El estado de error de la operación de carga retrasada inicial se conserva, por lo que cualquier uso posterior de la función de carga retrasada producirá un error incluso después de que se vuelva a habilitar el redireccionamiento del sistema de archivos. Para evitar estos problemas, deshabilite el redireccionamiento del sistema de archivos inmediatamente antes de llamar a funciones de E/S de archivos específicas (como CreateFile) que no se deben redirigir y volver a habilitar el redireccionamiento del sistema de archivos inmediatamente después de usar Wow64EnableWow64FsRedirection(TRUE).
 
El redireccionamiento de archivos está habilitado o deshabilitado solo para el subproceso que llama a esta función. Esto solo afecta a las operaciones realizadas por el subproceso actual. Algunas funciones, como CreateProcessAsUser, realizan su trabajo en otro subproceso, que no se ve afectado por el estado de redirección del sistema de archivos en el subproceso que realiza la llamada.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0 No
Conmutación por error transparente (TFO) de SMB 3.0 No
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS) No

Ejemplos

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wow64apiset.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones de administración de archivos

Redirector del sistema de archivos

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection