Wow64EnableWow64FsFsFredirection (wow64apiset.h)

Mengaktifkan atau menonaktifkan pengalihan sistem file untuk utas panggilan.

Fungsi ini mungkin tidak berfungsi dengan andal ketika ada panggilan berlapis. Oleh karena itu, fungsi ini telah digantikan oleh fungsi Wow64DisableWow64FsRedirection dan Wow64RevertWow64FsRedirection .

Catatan Kedua metode pengendalian pengalihan sistem file ini tidak dapat digabungkan dengan cara apa pun. Jangan gunakan fungsi Wow64EnableWow64FsRedirection dengan Wow64DisableWow64FsRedirection atau fungsi Wow64RevertWow64FsRedirection .
 

Sintaks

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Parameter

Wow64FsEnableRedirection

Menunjukkan jenis permintaan untuk pengalihan folder sistem WOW64. Jika TRUE, pengalihan permintaan diaktifkan; jika FALSE, pengalihan permintaan dinonaktifkan.

Nilai kembali

Nilai Boolean menunjukkan apakah fungsi berhasil. Jika TRUE, fungsi berhasil; jika FALSE, fungsi gagal.

Keterangan

Fungsi ini berguna untuk aplikasi 32-bit yang ingin mendapatkan akses ke direktori sistem32 asli. Secara default, pengalihan sistem file WOW64 diaktifkan.

Catatan Fungsi Wow64EnableWow64FsRedirection memengaruhi semua operasi file yang dilakukan oleh utas saat ini, yang dapat memiliki konsekuensi yang tidak diinginkan jika pengalihan sistem file dinonaktifkan untuk jangka waktu apa pun. Misalnya, pemuatan DLL tergantung pada pengalihan sistem file, sehingga menonaktifkan pengalihan sistem file akan menyebabkan pemuatan DLL gagal. Selain itu, banyak implementasi fitur menggunakan pemuatan tertunda dan akan gagal saat pengalihan dinonaktifkan. Status kegagalan operasi penundaan-beban awal tetap ada, sehingga setiap penggunaan fungsi tunda-muatan berikutnya akan gagal bahkan setelah pengalihan sistem file diaktifkan kembali. Untuk menghindari masalah ini, nonaktifkan pengalihan sistem file segera sebelum panggilan ke fungsi I/O file tertentu (seperti CreateFile) yang tidak boleh dialihkan, dan aktifkan kembali pengalihan sistem file segera setelahnya menggunakan Wow64EnableWow64FsRedirection(TRUE).
 
Pengalihan file diaktifkan atau dinonaktifkan hanya untuk utas yang memanggil fungsi ini. Ini hanya memengaruhi operasi yang dibuat oleh utas saat ini. Beberapa fungsi, seperti CreateProcessAsUser, melakukan pekerjaan mereka pada utas lain, yang tidak terpengaruh oleh status pengalihan sistem file di utas panggilan.

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

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header wow64apiset.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Fungsi Manajemen File

Pengalih Sistem File

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection