reactos/sdk/lib/rtl
jimtabor b784074c2f [0.4.13][WIN32SS][RTL] Fix regression CORE-16769 + BSOD CORE-13907 & CORE-14857
Thanks to Jim Tabor, Mark Jansen & Thomas Faber
By squashed backmerge of the following commits:
--------------
[NTUSER] Fix Strings and Format to Hooks

Allocate heap instead of data segment to be used for callbacks on user side.
Move and correct initial hook call out setup. Use it in more than one hook call.

This fixes issues with strings out of alignment and use of kernel pointers.

See CORE-13907 and CORE-16769. KsStudio still needs retested.

Small wow update.

cherry picked from commit 0.4.14-dev-1287-g
568b6d0558
--------------
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857

cherry picked from commit 0.4.14-dev-1255-g
177ae91bf6
--------------
[WIN32SS] Form Sanity to Hook Callbacks

Fix WH_CALLWNDPROC/RET data to user hook calls. See CORE-13019 and CORE-13907.

cherry picked from commit 0.4.14-dev-1241-g
915a5764a9
--------------
[USER32] Fix null return.

See CORE-16769.

cherry picked from commit 0.4.14-dev-1240-g
d8add40e89
2020-04-03 14:51:10 +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 [NTDLL] Use the embedded manifest from the process to check compatibility. 2019-08-21 18:57:52 +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 [0.4.13][WIN32SS][RTL] Fix regression CORE-16769 + BSOD CORE-13907 & CORE-14857 2020-04-03 14:51:10 +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 [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02:00
nls.c
path.c [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02: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 [NTDLL] Use the embedded manifest from the process to check compatibility. 2019-08-21 18:57:52 +02: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.