reactos/sdk/lib/rtl
Hermès Bélusca-Maïto effdb6f232
[KERNEL32][RTL] Diverse fixes/improvements for thread stack creation code. (#802)
- kernel32!BaseCreateStack() is compatible with ntdll!RtlpCreateUserStack().
- When checking whether a stack guard page can be added, its size has to
  be accounted for in the checking logic.
- We have to satisfy the PEB::MinimumStackCommit constraint.
- We cannot use PEB::GuaranteedStackBytes in BaseCreateStack() since it is
  nowhere initialized (default is 0). It gets initialized to a non-zero
  value when the user manually calls SetThreadStackGuarantee().
  https://www.installsetupconfig.com/win32programming/windowsthreadsprocessapis7_6.html

- RtlpCreateUserStack(): Fix memory leak in failure case.
- RtlpFreeUserStack() doesn't need to return anything.

See also commit 1bc59379 (r59868).

CORE-11319
2019-08-01 19:04:13 +02:00
..
amd64 [REACTOS] Fix 64 bit build (#465) 2018-04-03 15:13:17 -06:00
arm
i386 [RTL] Make RtlFillMemoryUlonglong public 2017-11-18 18:05:22 +01:00
powerpc
access.c
acl.c
actctx.c [RTL] actctx: When probing a dll for a manifest, use the first manifest id present, 2018-10-01 20:16:10 +02:00
appverifier.c
assert.c [REACTOS] RtlAssert(): use "%lu" as LineNumber format. 2018-08-08 21:24:07 +02:00
atom.c
avlsupp.c
avltable.c
bitmap.c
bitmap64.c
bootdata.c [RTL]: Document and flesh out Boot Status Data (BSD) API/Structures 2018-02-04 09:33:32 -08:00
byteswap.c
CMakeLists.txt [RTL]: Document and flesh out Boot Status Data (BSD) API/Structures 2018-02-04 09:33:32 -08:00
compress.c
crc32.c
critical.c [RTL] Fix failure check in RtlpCreateCriticalSectionSem. 2019-06-25 09:26:05 +02:00
dbgbuffer.c
debug.c [SDK] Reset InDbgPrint state when an exception occurs 2019-01-05 15:21:40 +01:00
dos8dot3.c
encode.c
env.c
error.c
exception.c
generictable.c
handle.c
heap.c [RTL] Fix GCC build. 2019-02-17 09:59:49 +01:00
heap.h
heapdbg.c
heappage.c
heapuser.c
image.c [RTL][KERNEL32] Add a comment indicating we need SEH in RtlImageNtHeaderEx 2018-08-13 13:24:12 +02:00
interlck.c
largeint.c
luid.c
mem.c
memstream.c [NTOS][NDK][RTL] A bunch of 'wrong size' fixes 2017-12-20 06:56:09 +01:00
message.c
network.c
nls.c
path.c [RTL] Implement RtlComputePrivatizedDllName_U 2019-02-07 18:48:49 +01:00
ppb.c
prefix.c
priv.c
process.c
propvar.c
random.c
rangelist.c
readme.txt
registry.c [NTDLL_APITEST][LIB_RTL] Add a test for RtlQueryTimeZoneInformation and fix the bug in RtlpQueryRegistryDirect 2018-05-31 16:47:42 +02:00
res.c
resource.c
rtl.h
rtlavl.h
rtlp.h [REACTOS] Fix 64 bit build (#465) 2018-04-03 15:13:17 -06:00
rxact.c [NDK] Fix alignment macros and add missing ones 2018-07-01 14:45:21 +02:00
sd.c
security.c [RTL] Fix RtlNewSecurityGrantedAccess improperly zeroing output buffer 2018-12-31 11:19:36 +01:00
sid.c
slist.c
splaytree.c
sysvol.c [RTL]: Document and flesh out Boot Status Data (BSD) API/Structures 2018-02-04 09:33:32 -08:00
thread.c [KERNEL32][RTL] Diverse fixes/improvements for thread stack creation code. (#802) 2019-08-01 19:04:13 +02:00
time.c
timerqueue.c
timezone.c
trace.c
unicode.c
unicodeprefix.c
vectoreh.c
version.c
wait.c
workitem.c

RTL restrictions:

ExAllocatePool (and friends) must be used exclusively. RtlAllocateHeap (and friends) must NOT be used! ExAllocatePool (and friends) translate to RtlAllocateHeap (and friends) in ntdll\rtl\libsupp.c.

RtlEnterCriticalSection (and friends) must be used exclusively. ExAcquireFastMutex (and friends) must NOT be used! RtlEnterCriticalSection (and friends) translate to ExAcquireFastMutex (and friends) in ntoskrnl\rtl\libsupp.c. This means that RtlEnterCriticalSection (and friends) can NOT be used recursively in RTL. The reason for choosing RtlEnterCriticalSection (and friends) over ExAcquireFastMutex (and friends) is that the FAST_MUTEX struct is smaller than the RTL_CRITICAL_SECTION struct.