Freigeben über


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

Siehe auch

Prozess- und Threadfunktionen

Threadstapelgröße

Threads

In VBS-Enklaven verfügbare Vertdll-APIs