Función SetThreadStackGuarantee (processthreadsapi.h)

Establece el tamaño mínimo de la pila asociada al subproceso o fibra que estará disponible durante las excepciones de desbordamiento de pila. Esto es útil para controlar excepciones de desbordamiento de pila; la aplicación puede usar de forma segura el número especificado de bytes durante el control de excepciones.

Sintaxis

BOOL SetThreadStackGuarantee(
  [in, out] PULONG StackSizeInBytes
);

Parámetros

[in, out] StackSizeInBytes

Tamaño de la pila, en bytes. Al devolver, este valor se establece en el tamaño de la pila anterior, en bytes.

Si este parámetro es 0 (cero), la función se realiza correctamente y el parámetro contiene el tamaño de la pila actual.

Si el tamaño especificado es menor que el tamaño actual, la función se realiza correctamente, pero omite esta solicitud. Por lo tanto, no puede usar esta función para reducir el tamaño de la pila.

Este valor no puede ser mayor que el tamaño de pila reservado.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es 0 (cero). Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si la función se ejecuta correctamente, la aplicación puede controlar posibles EXCEPTION_STACK_OVERFLOW excepciones mediante el control de excepciones estructurado. Para reanudar la ejecución después de controlar un desbordamiento de pila, debe realizar determinados pasos de recuperación. Si usa el compilador de Microsoft C/C++, llame a la función _resetstkoflw . Si usa otro compilador, consulte la documentación del compilador para obtener información sobre cómo recuperarse de desbordamientos de pila.

Para establecer la garantía de pila para una fibra, primero debe llamar a la función SwitchToFiber para ejecutar la fibra. Después de establecer la garantía de esta fibra, la utiliza la fibra independientemente del subproceso que ejecute la fibra.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP Professional x64 Edition [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008, Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado processthreadsapi.h (incluya Windows.h en Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones de proceso y subproceso

Tamaño de pila de subprocesos

Subprocesos

API de Vertdll disponibles en enclaves de VBS