Fonction Wow64DisableWow64FsRedirection (wow64apiset.h)
Désactive la redirection du système de fichiers pour le thread appelant. La redirection du système de fichiers est activée par défaut.
Syntaxe
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
Paramètres
[out] OldValue
Valeur de redirection du système de fichiers WOW64. Le système utilise ce paramètre pour stocker les informations nécessaires pour rétablir (réactiver) la redirection du système de fichiers.
Valeur retournée
Si la fonction réussit, la valeur de retour est une valeur différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
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.
L’association de fonctions Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection remplace les fonctionnalités de la fonction Wow64EnableWow64FsRedirection .
Pour restaurer la redirection du système de fichiers, appelez la fonction Wow64RevertWow64FsRedirection . Chaque appel réussi à la fonction Wow64DisableWow64FsRedirection doit avoir un appel correspondant à la fonction Wow64RevertWow64FsRedirection . Cela garantit que la redirection est réactivé et libère les ressources système associées.
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
L’exemple suivant utilise Wow64DisableWow64FsRedirection pour désactiver la redirection du système de fichiers afin qu’une application 32 bits qui s’exécute sous WOW64 puisse ouvrir la version 64 bits de Notepad.exe dans %SystemRoot%\System32 au lieu d’être redirigée vers la version 32 bits dans %SystemRoot%\SysWOW64.
#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
}
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista, Windows XP Professionnel Édition x64 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008, Windows Server 2003 avec SP1 [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