SetThreadStackGuarantee-Funktion (processthreadsapi.h)
Legt die Mindestgröße des Stapels fest, der dem aufrufenden Thread oder der aufrufenden Faser zugeordnet ist, der während aller Stapelüberlaufausnahmen verfügbar ist. Dies ist nützlich für die Behandlung von Stapelüberlaufausnahmen. Die Anwendung kann die angegebene Anzahl von Bytes während der Ausnahmebehandlung sicher verwenden.
Syntax
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
Parameter
[in, out] StackSizeInBytes
Die Größe des Stapels in Bytes. Bei der Rückgabe wird dieser Wert auf die Größe des vorherigen Stapels in Bytes festgelegt.
Wenn dieser Parameter 0 (null) ist, wird die Funktion erfolgreich ausgeführt, und der Parameter enthält die Größe des aktuellen Stapels.
Wenn die angegebene Größe kleiner als die aktuelle Größe ist, ist die Funktion erfolgreich, ignoriert diese Anforderung jedoch. Daher können Sie diese Funktion nicht verwenden, um die Größe des Stapels zu reduzieren.
Dieser Wert darf nicht größer als die reservierte Stapelgröße sein.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert 0 (null). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Wenn die Funktion erfolgreich ist, kann die Anwendung mögliche EXCEPTION_STACK_OVERFLOW Ausnahmen mithilfe der strukturierten Ausnahmebehandlung verarbeiten. Um die Ausführung nach der Behandlung eines Stapelüberlaufs fortzusetzen, müssen Sie bestimmte Wiederherstellungsschritte ausführen. Wenn Sie den Microsoft C/C++-Compiler verwenden, rufen Sie die funktion _resetstkoflw auf. Wenn Sie einen anderen Compiler verwenden, finden Sie informationen zum Wiederherstellen von Stapelüberläufen in der Dokumentation für den Compiler.
Um die Stapelgarantie für eine Faser festzulegen, müssen Sie zuerst die SwitchToFiber-Funktion aufrufen, um die Faser auszuführen. Nachdem Sie die Garantie für diese Faser festgelegt haben, wird sie von der Faser verwendet, unabhängig davon, welcher Thread die Fasern ausführt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP Professional x64 Edition [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008, Windows Server 2003 mit SP1 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | processthreadsapi.h (einschließlich Windows.h unter Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |