[KERNEL32] Add an (incomplete) pre-implementation for SetThreadStackGuarantee(). (#803)

This should remove some of the "SetThreadStackGuarantee(): stub" messages in some simple cases.
This commit is contained in:
Hermès Bélusca-Maïto 2018-08-23 21:30:56 +02:00
parent 30b800f8b5
commit 0e3a043526
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -5,7 +5,6 @@
* PURPOSE: Thread functions * PURPOSE: Thread functions
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
* Ariadne (ariadne@xs4all.nl) * Ariadne (ariadne@xs4all.nl)
*
*/ */
/* INCLUDES *******************************************************************/ /* INCLUDES *******************************************************************/
@ -950,16 +949,44 @@ QueueUserAPC(IN PAPCFUNC pfnAPC,
} }
/* /*
* @implemented * @unimplemented
*/ */
BOOL BOOL
WINAPI WINAPI
SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes) SetThreadStackGuarantee(IN OUT PULONG StackSizeInBytes)
{ {
static int once; PTEB Teb = NtCurrentTeb();
if (once++ == 0) ULONG GuaranteedStackBytes;
DPRINT1("SetThreadStackGuarantee(%p): stub\n", StackSizeInBytes); ULONG AllocationSize;
return TRUE;
if (!StackSizeInBytes)
{
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
AllocationSize = *StackSizeInBytes;
/* Retrieve the current stack size */
GuaranteedStackBytes = Teb->GuaranteedStackBytes;
/* Return the size of the previous stack */
*StackSizeInBytes = GuaranteedStackBytes;
/*
* If the new stack size is either zero or is less than the current size,
* the previous stack size is returned and we return success.
*/
if ((AllocationSize == 0) || (AllocationSize < GuaranteedStackBytes))
{
return TRUE;
}
// FIXME: Unimplemented!
UNIMPLEMENTED_ONCE;
// return TRUE;
return FALSE;
} }
/* /*