Fungsi SetThreadStackGuarantee (processthreadsapi.h)
Mengatur ukuran minimum tumpukan yang terkait dengan utas panggilan atau serat yang akan tersedia selama pengecualian luapan tumpukan apa pun. Ini berguna untuk menangani pengecualian luapan tumpukan; aplikasi dapat dengan aman menggunakan jumlah byte yang ditentukan selama penanganan pengecualian.
Sintaks
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
Parameter
[in, out] StackSizeInBytes
Ukuran tumpukan, dalam byte. Saat dikembalikan, nilai ini diatur ke ukuran tumpukan sebelumnya, dalam byte.
Jika parameter ini adalah 0 (nol), fungsi berhasil dan parameter berisi ukuran tumpukan saat ini.
Jika ukuran yang ditentukan kurang dari ukuran saat ini, fungsi berhasil tetapi mengabaikan permintaan ini. Oleh karena itu, Anda tidak dapat menggunakan fungsi ini untuk mengurangi ukuran tumpukan.
Nilai ini tidak boleh lebih besar dari ukuran tumpukan yang dipesan.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah 0 (nol). Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika fungsi berhasil, aplikasi dapat menangani kemungkinan pengecualian EXCEPTION_STACK_OVERFLOW menggunakan penanganan pengecualian terstruktur. Untuk melanjutkan eksekusi setelah menangani luapan tumpukan, Anda harus melakukan langkah-langkah pemulihan tertentu. Jika Anda menggunakan pengkompilasi Microsoft C/C++, panggil fungsi _resetstkoflw . Jika Anda menggunakan pengkompilasi lain, lihat dokumentasi untuk pengkompilasi untuk informasi tentang pemulihan dari luapan tumpukan.
Untuk mengatur jaminan tumpukan untuk serat, Anda harus terlebih dahulu memanggil fungsi SwitchToFiber untuk menjalankan serat. Setelah Anda menetapkan jaminan untuk serat ini, itu digunakan oleh serat tidak peduli utas mana yang mengeksekusi serat.
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 | processthreadsapi.h (termasuk Windows.h pada Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
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