Condividi tramite


Funzione Wow64EnableWow64FsRedirection (wow64apiset.h)

Abilita o disabilita il reindirizzamento del file system per il thread chiamante.

Questa funzione potrebbe non funzionare in modo affidabile quando sono presenti chiamate annidate. Pertanto, questa funzione è stata sostituita dalle funzioni Wow64DisableWow64FsRedirection e Wow64RevertWow64FsRedirection .

Nota Questi due metodi di controllo del reindirizzamento del file system non possono essere combinati in alcun modo. Non usare la funzione Wow64EnableWow64FsRedirection con la funzione Wow64DisableWow64FsRedirection o Wow64RevertWow64FsRedirection .
 

Sintassi

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Parametri

Wow64FsEnableRedirection

Indica il tipo di richiesta per il reindirizzamento delle cartelle di sistema WOW64. Se TRUE, le richieste di reindirizzamento devono essere abilitate; se FALSE, le richieste di reindirizzamento devono essere disabilitate.

Valore restituito

Valore booleano che indica se la funzione è riuscita. Se TRUE, la funzione ha avuto esito positivo; se FALSE, la funzione non è riuscita.

Commenti

Questa funzione è utile per le applicazioni a 32 bit che vogliono ottenere l'accesso alla directory system32 nativa. Per impostazione predefinita, il reindirizzamento del file system WOW64 è abilitato.

Nota La funzione Wow64EnableWow64FsRedirection influisce su tutte le operazioni sui file eseguite dal thread corrente, che possono avere conseguenze impreviste se il reindirizzamento del file system è disabilitato per qualsiasi periodo di tempo. Ad esempio, il caricamento di DLL dipende dal reindirizzamento del file system, pertanto la disabilitazione del reindirizzamento del file system causerà l'esito negativo del caricamento della DLL. Inoltre, molte implementazioni di funzionalità usano il caricamento ritardato e avranno esito negativo mentre il reindirizzamento è disabilitato. Lo stato di errore dell'operazione di caricamento ritardo iniziale è persistente, pertanto qualsiasi uso successivo della funzione di caricamento ritardato avrà esito negativo anche dopo la riattivazione del reindirizzamento del file system. Per evitare questi problemi, disabilitare il reindirizzamento del file system immediatamente prima delle chiamate a funzioni di I/O di file specifiche (ad esempio CreateFile) che non devono essere reindirizzate e riabilitare il reindirizzamento del file system immediatamente dopo usando Wow64EnableWow64FsRedirection(TRUE).
 
Il reindirizzamento dei file è abilitato o disabilitato solo per il thread che chiama questa funzione. Ciò influisce solo sulle operazioni eseguite dal thread corrente. Alcune funzioni, ad esempio CreateProcessAsUser, eseguono il lavoro su un altro thread, che non è influenzato dallo stato del reindirizzamento del file system nel thread chiamante.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) No
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS) No

Esempio

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

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wow64apiset.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni di gestione file

File System Redirector

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection