Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berisi pengaturan kebijakan mitigasi proses untuk Perlindungan Tumpukan yang Diberlakukan Perangkat Keras (HSP) mode pengguna. Fungsi GetProcessMitigationPolicy dan SetProcessMitigationPolicy menggunakan struktur ini.
Sintaks
typedef struct _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableUserShadowStack : 1;
DWORD AuditUserShadowStack : 1;
DWORD SetContextIpValidation : 1;
DWORD AuditSetContextIpValidation : 1;
DWORD EnableUserShadowStackStrictMode : 1;
DWORD BlockNonCetBinaries : 1;
DWORD BlockNonCetBinariesNonEhcont : 1;
DWORD AuditBlockNonCetBinaries : 1;
DWORD CetDynamicApisOutOfProcOnly : 1;
DWORD SetContextIpValidationRelaxedMode : 1;
DWORD ReservedFlags : 22;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY, *PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY;
Anggota
DUMMYUNIONNAME
DUMMYUNIONNAME.Flags
Anggota ini dicadangkan untuk penggunaan sistem.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EnableUserShadowStack
Jika TRUE, Perlindungan Tumpukan yang diberlakukan perangkat keras mode pengguna diaktifkan untuk proses dalam mode kompatibilitas. Ini berarti bahwa CPU memverifikasi alamat pengembalian fungsi pada runtime dengan menggunakan mekanisme tumpukan bayangan, jika didukung oleh perangkat keras. Dalam mode kompatibilitas, hanya pelanggaran tumpukan bayangan yang terjadi dalam modul yang dianggap kompatibel dengan tumpukan bayangan (CETCOMPAT) yang fatal. Agar modul dianggap CETCOMPAT, modul perlu dikompilasi dengan CETCOMPAT untuk biner, atau ditandai menggunakan SetProcessDynamicEnforcedCetCompatibleRanges untuk kode dinamis. Bidang ini tidak dapat diubah melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditUserShadowStack
Jika TRUE, pelanggaran tumpukan bayangan yang akan berakibat fatal malah diperlakukan sebagai tidak fatal dan peristiwa diagnostik dicatat di Log Peristiwa. Ketika bidang ini TRUE, EnableUserShadowStack harus TRUE dan EnableUserShadowStackStrictMode mungkin TRUE, tergantung pada apakah mode kompatibilitas sedang diaudit atau mode ketat sedang diaudit. Bidang ini tidak dapat diubah melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.SetContextIpValidation
Jika TRUE, saat memanggil API yang memodifikasi konteks eksekusi utas seperti SetThreadContext dan RtlRestoreContext, validasi dilakukan pada Penunjuk Instruksi yang ditentukan dalam konteks eksekusi baru. Bidang ini tidak dapat diubah melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditSetContextIpValidation
Jika TRUE, Petunjuk Penunjuk yang akan menyebabkan validasi gagal diperbolehkan dan peristiwa diagnostik dicatat di Log Peristiwa. Ketika bidang ini TRUE, SetContextIpValidation harus TRUE dan SetContextIpValidationRelaxedMode mungkin TRUE, tergantung pada mode mana validasi Instruction Pointer saat ini beroperasi. Bidang ini tidak dapat diubah melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EnableUserShadowStackStrictMode
Jika TRUE, Perlindungan Tumpukan yang diberlakukan perangkat keras mode pengguna diaktifkan untuk proses dalam mode ketat. Semua pelanggaran tumpukan bayangan bersifat fatal. Ketika bidang ini TRUE, EnableUserShadowStack harus TRUE. Jika HSP diaktifkan dalam mode kompatibilitas, HSP dapat ditingkatkan ke mode ketat pada runtime dengan mengatur bidang ini ke TRUE dan memanggil SetProcessMitigationPolicy. HSP tidak dapat diturunkan atau dinonaktifkan melalui SetProcessMitigationPolicy. Jika HSP dinonaktifkan, HSP tidak dapat diaktifkan melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BlockNonCetBinaries
Jika TRUE, biner yang tidak dikompilasi dengan CETCOMPAT diblokir agar tidak dimuat ke dalam proses. Kebijakan ini dapat diaktifkan setelah proses dimulai dengan memanggil SetProcessMitigationPolicy. Ini tidak dapat dinonaktifkan setelah diaktifkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BlockNonCetBinariesNonEhcont
Jika TRUE, biner yang tidak dikompilasi dengan CETCOMPAT atau tidak berisi metadata kelanjutan penanganan pengecualian (/guard:ehcont) diblokir agar tidak dimuat ke dalam proses. Ketika bidang ini TRUE, BlockNonCetBinaries harus TRUE. Kebijakan ini dapat diaktifkan setelah proses dimulai dengan memanggil SetProcessMitigationPolicy. Ini tidak dapat dinonaktifkan atau diturunkan tingkatnya setelah diaktifkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditBlockNonCetBinaries
Jika TRUE, beban biner yang akan diblokir akan diizinkan dan peristiwa diagnostik dicatat di Log Peristiwa. Ketika bidang ini TRUE, BlockNonCetBinaries harus TRUE dan BlockNonCetBinariesNonEhcont mungkin TRUE, tergantung pada jenis biner mana yang saat ini diblokir agar tidak dimuat ke dalam proses. Bidang ini tidak dapat diubah melalui SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.CetDynamicApisOutOfProcOnly
Jika TRUE, API HSP tertentu yang digunakan untuk menentukan properti keamanan kode dinamis hanya dapat dipanggil dari luar proses untuk tujuan keamanan. API ini adalah SetProcessDynamicEHContinuationTargets dan SetProcessDynamicEnforcedCetCompatibleRanges. Kebijakan ini dapat diaktifkan setelah proses dimulai dengan memanggil SetProcessMitigationPolicy. Ini tidak dapat dinonaktifkan setelah diaktifkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.SetContextIpValidationRelaxedMode
Jika TRUE, validasi Penunjuk Instruksi proses diturunkan ke mode santai, yang memungkinkan semua Penunjuk Instruksi yang berada dalam kode dinamis atau dalam biner yang tidak berisi metadata kelanjutan penanganan pengecualian. Ketika bidang ini TRUE, SetContextIpValidation harus TRUE. Proses ini dapat ditingkatkan dari mode santai ke mode normal saat runtime dengan mengatur bidang ini ke FALSE dan memanggil SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.ReservedFlags
Anggota ini dicadangkan untuk penggunaan sistem.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows 10, versi 2004 (10.0; Build 19041) |
| Server minimum yang didukung | Windows Server, versi 2004 (10.0; Build 19041) |
| Header | winnt.h |