Fungsi SetProcessDEPPolicy (winbase.h)
Mengubah pengaturan pencegahan eksekusi data (DEP) dan emulasi thunk DEP-ATL untuk proses 32-bit.
Sintaks
BOOL SetProcessDEPPolicy(
[in] DWORD dwFlags
);
Parameter
[in] dwFlags
DWORD yang bisa menjadi satu atau beberapa nilai berikut.
Nilai kembali
Jika fungsi berhasil, fungsi akan mengembalikan TRUE.
Jika fungsi gagal, fungsi akan mengembalikan FALSE. Untuk mengambil nilai kesalahan yang ditentukan untuk fungsi ini, panggil GetLastError.
Keterangan
Fungsi SetProcessDEPPolicy mengambil alih kebijakan DEP sistem untuk proses saat ini kecuali kebijakan DEP-nya ditentukan saat pembuatan proses. Pengaturan kebijakan DEP sistem harus OptIn atau OptOut. Jika kebijakan DEP sistem AlwaysOff atau AlwaysOn, SetProcessDEPPolicy mengembalikan kesalahan. Setelah DEP diaktifkan untuk proses, panggilan berikutnya ke SetProcessDEPPolicy diabaikan.
Kebijakan DEP yang ditentukan pada pembuatan proses dengan atribut PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY tidak dapat diubah selama masa proses. Dalam hal ini, panggilan ke SetProcessDEPPolicy gagal dengan ERROR_ACCESS_DENIED.
SetProcessDEPPolicy hanya didukung untuk proses 32-bit. Jika fungsi ini dipanggil pada proses 64-bit, fungsi ini gagal dengan ERROR_NOT_SUPPORTED.
Aplikasi yang ditulis ke ATL 7.1 dan yang lebih lama dapat mencoba mengeksekusi kode pada halaman yang ditandai sebagai tidak dapat dieksekusi, yang memicu kesalahan NX dan mengakhiri aplikasi. Emulasi thunk DEP-ATL memungkinkan aplikasi yang sebaliknya akan memicu kesalahan NX untuk dijalankan dengan DEP diaktifkan. Untuk informasi tentang versi ATL, lihat Nomor Versi ATL dan MFC.
Jika emulasi thunk DEP-ATL diaktifkan, sistem mencegat kesalahan NX, meniru instruksi, dan menangani pengecualian sehingga aplikasi dapat terus berjalan. Jika emulasi thunk DEP-ATL dinonaktifkan dengan mengatur PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION untuk proses, kesalahan NX tidak dicegat, yang berguna saat menguji aplikasi untuk kompatibilitas dengan DEP.
Tabel berikut ini meringkas interaksi antara kebijakan DEP sistem, emulasi thunk DEP-ATL, dan SetProcessDEPPolicy. Untuk mendapatkan pengaturan kebijakan DEP sistem, gunakan fungsi GetSystemDEPPolicy .
Kebijakan DEP sistem | Perilaku DEP | DEP_ATL perilaku emulasi thunk | Perilaku SetProcessDEPPolicy |
---|---|---|---|
AlwaysOff 0 |
Dinonaktifkan untuk sistem operasi dan semua proses. | Tidak dapat diterapkan. | Mengembalikan kesalahan. |
AlwaysOn 1 |
Diaktifkan untuk sistem operasi dan semua proses. | Nonaktif. | Mengembalikan kesalahan. |
Optin 2 Konfigurasi default untuk versi klien Windows. |
Diaktifkan untuk sistem operasi dan dinonaktifkan untuk proses nonsystem. Administrator dapat secara eksplisit mengaktifkan DEP untuk file yang dapat dieksekusi yang dipilih. | Tidak dapat diterapkan. |
DEP dapat diaktifkan untuk proses saat ini.
Jika DEP diaktifkan untuk proses saat ini, emulasi thunk DEP-ATL dapat dinonaktifkan untuk proses tersebut. |
OptOut 3 Konfigurasi default untuk versi Windows Server. |
Diaktifkan untuk sistem operasi dan semua proses. Administrator dapat secara eksplisit menonaktifkan DEP untuk file yang dapat dieksekusi yang dipilih. | Aktif. |
DEP dapat dinonaktifkan untuk proses saat ini.
Jika DEP dinonaktifkan untuk proses saat ini, emulasi thunk DEP-ATL secara otomatis dinonaktifkan untuk proses tersebut. |
Untuk mengkompilasi aplikasi yang memanggil fungsi ini, tentukan _WIN32_WINNT sebagai 0x0600 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista dengan SP1, Windows XP dengan SP3 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winbase.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk