Fungsi Wow64DisableWow64FsRedirection (wow64apiset.h)
Menonaktifkan pengalihan sistem file untuk utas panggilan. Pengalihan sistem file diaktifkan secara default.
Sintaks
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
Parameter
[out] OldValue
Nilai pengalihan sistem file WOW64. Sistem menggunakan parameter ini untuk menyimpan informasi yang diperlukan untuk mengembalikan (mengaktifkan kembali) pengalihan sistem file.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah nilai bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi ini berguna untuk aplikasi 32-bit yang ingin mendapatkan akses ke direktori sistem32 asli. Secara default, pengalihan sistem file WOW64 diaktifkan.
Pasangan fungsi Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection adalah pengganti fungsionalitas fungsi Wow64EnableWow64FsRedirection .
Untuk memulihkan pengalihan sistem file, panggil fungsi Wow64RevertWow64FsRedirection . Setiap panggilan yang berhasil ke fungsi Wow64DisableWow64FsRedirection harus memiliki panggilan yang cocok ke fungsi Wow64RevertWow64FsRedirection . Ini akan memastikan pengalihan diaktifkan kembali dan membebaskan sumber daya sistem terkait.
Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.
Teknologi | Didukung |
---|---|
Protokol Server Message Block (SMB) 3.0 | Tidak |
SMB 3.0 Transparent Failover (TFO) | Tidak |
SMB 3.0 dengan Scale-out File Shares (SO) | Tidak |
Sistem File Volume Bersama Kluster (CsvFS) | Ya |
Sistem File Tangguh (ReFS) | Tidak |
Contoh
Contoh berikut menggunakan Wow64DisableWow64FsRedirection untuk menonaktifkan pengalihan sistem file sehingga aplikasi 32-bit yang berjalan di WOW64 dapat membuka versi 64-bit Notepad.exe di %SystemRoot%\System32 alih-alih dialihkan ke versi 32-bit di %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
}
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista, Windows XP Professional x64 Edition [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008, Windows Server 2003 dengan SP1 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wow64apiset.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |