Commit graph

51 commits

Author SHA1 Message Date
Elliot Killick 932aef40f7
[LDR][NDK] Fix inconsistent Cookie type (#6188)
Make LdrUnlockLoaderLock Cookie type consistent with LdrLockLoaderLock
and LdrpMakeCookie functions.

In addition:
* Adjustment of the formatting string for ULONG_PTR;
* ntdll.spec: specify ptr for 2nd parameter of LdrUnlockLoaderLock:
  This is a parameter whose length is pointer-like, platform-dependent.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2023-12-23 22:13:47 +01:00
Timo Kreuzer 86f2d4cd4e [NTDLL] Initialize keyed event for condition variables 2023-12-16 13:52:15 +02:00
Ratin Gao bd0a5498b0
[NTDLL:LDR] Little fixes about SAL annotation and behavior (#5793)
- Uniform function declarations in .c and .h with fixes and SAL2 improvements.
- Use LDR_[UN]LOCK_LOADER_LOCK_FLAG_XXX correctly.
- Fix incorrect UsedSize calculation in LdrQueryProcessModuleInformationEx (caught by ThFabba).
- Whatever the callback request stop the enumeration or not in LdrEnumerateLoadedModules, the following operations should be the same.
- Fix 2 incorrect DPRINT1 that printed incorrect parameter.
- Return error if RtlAllocateHeap failed in LdrpGetProcedureAddress, and add comments about NT6.2 new changes.
2023-11-15 20:59:32 +01:00
Ratin Gao be5c889cdf [NTDLL:LDR] SAL improvements and fixes
- Convert some notations to SAL2
- "Name" parameter in LdrGetProcedureAddress/LdrpGetProcedureAddress should be optional
- "DllCharacteristics" parameter in LdrGetDllHandle should be optional
2023-10-04 12:26:18 +03:00
Hermès Bélusca-Maïto dff55c9d33
[NTDLL][RTL] Move RtlpTimeoutDisable definition to the RTL (#4089) 2023-09-21 13:33:27 +02:00
Hermès Bélusca-Maïto 6f89a48349
[NTDLL:LDR] Fix process LoadConfig CS timeout conversion from ms to 100ns units (#4089)
For more details, see
https://forums.codeguru.com/showthread.php?370731-EnterCriticalSection-locking&p=1302399#post1302399
2023-09-21 13:33:26 +02:00
Hermès Bélusca-Maïto 903a3dc622
[NTDLL][RTL] Fix english typo in (internal) function name. 2023-09-21 13:33:18 +02:00
Mark Jansen 15d491fb29
[NTDLL] Implement LdrInitShimEngineDynamic.
This is the final step required to properly support SE_DynamicShim
CORE-13283
2022-10-26 20:12:21 +02:00
Hermès Bélusca-Maïto 4dd734e92c
[NTDLL:LDR] Don't hardcode process-execute flag values. (#4111) 2022-01-14 23:59:32 +01:00
Hermès Bélusca-Maïto 9393fc320e
[FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Joachim Henze 4cc2c350ef [LDR] Disable Logging when images overlap CORE-17635
We found out what we wanted to find out:
the remaining TODOs for the Python script.

So we can silence the DPRINTs again for the time being
to reduce spam from 3rd party dlls.
Paying tribute to Mark Jansen ;)
2021-08-06 19:25:14 +02:00
Serge Gautherie 513f3d179c [NTDLL] LdrpWalkImportDescriptor(): Fix 'Status' copypasta
Addendum to f6cd52a (r70646).
2021-07-06 08:26:26 +02:00
Joachim Henze d042f51838 [LDR] Restore Logging when images overlap CORE-17635
This reverts
0.4.13-dev-284-g 74be88ac47

The logging is helpful to alert us when we should really
recalculate the base addresses for performance reasons.
Spams a bit sometimes, sure, but it's worth it!
2021-06-16 13:38:51 +02:00
Thomas Faber 1c404d838a
[NTDLL:LDR] Fail if section creation fails in LdrpCreateDllSection. CORE-17284
Otherwise we'd call ZwQuerySection on an invalid handle and get:
(ntoskrnl/mm/section.c:4320) Failed to reference section: 0xc0000008

Also correctly check DllCharacteristics: If the argument is missing, the
file is _not_ a system file, i.e. we should check for restrictions.
2020-10-03 13:10:09 +02:00
William Kent 427ea67b9c
[RTL] Add code to SxS manifest parser to parse XML namespaces (#2512)
* [XDK] Typo fix
* [XDK] Add missing ACTIVATION_CONTEXT_SECTION values
* [RTL] Merge changes from Wine
* [ROSTESTS] Fix typo
* [NTDLL] Typo fix
* Add test for new functionality
* [ROSTESTS] Fix path
* [ROSTESTS] Add test to testlist.c
2020-09-20 22:56:42 +02:00
Timo Kreuzer cb99761bc1 [NTDLL] Use lowest OS version GUID in the application manifest, instead of highest 2020-05-31 13:14:01 +02:00
Timo Kreuzer f323778b0b [NTDLL] Rename ExportEntry to ExportDirectory to better represent what it is 2020-05-23 17:30:52 +02:00
Mark Jansen d5f0b2b160
[RTL] Implement LdrpRecordUnloadEvent 2020-04-26 14:35:51 +02:00
Mark Jansen 1e0f359fa7
[LDR] Add initial LOAD_CONFIG support 2020-04-17 17:47:24 +02:00
Mark Jansen 2801a8272d
[LDR] Include source dll in static snap failure dprint 2020-03-29 21:02:31 +02:00
Mark Jansen 8381e29467
[NTDLL] Add policy kill-switch for manifest based automatic shimming
CORE-16631
2020-01-25 13:23:54 +01:00
Timo Kreuzer 5fa4fd7bef [RTL][NTDLL] Add some function stubs
- LdrSetAppCompatDllRedirectionCallback
- RtlCancelTimer
- RtlCreateServiceSid
- RtlQueryProcessHeapInformation
- RtlQueueApcWow64Thread
- RtlSetTimer
- RtlUnhandledExceptionFilter2
- RtlpNotOwnerCriticalSection
2020-01-03 13:00:45 +01:00
Thomas Faber 8d3f52a2ca
[NTDLL:LDR] Add a print on illegal DLL relocation. 2019-12-27 17:02:26 +01:00
Mark Jansen 029b8f2cf9
[NTDLL] Use the embedded manifest from the process to check compatibility. 2019-08-21 18:57:52 +02:00
Mark Jansen 343442cc3f
[LDR][APPHELP] Add a shim that disables manifest compatibility version parsing 2019-08-19 12:08:06 +02:00
Timo Kreuzer 7611cc2b12 [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02:00
Hervé Poussineau 74be88ac47 [LDR] Silence some debug logs when images overlap 2019-05-27 13:24:28 +02:00
Mark Jansen a1f6a6bdc3
[LDR] Do not call module entrypoints while loading the shim engine.
Manually call the shim engine entrypoint
CORE-15846
2019-03-14 20:02:01 +01:00
Mark Jansen 27cc4c6a08
[LDR] Check forwarded imports against the manifest before trying to load them
CORE-15729
2019-02-08 21:24:01 +01:00
Mark Jansen d93e516747
[LDR] Add support for .local files
CORE-187
2019-02-07 18:48:49 +01:00
Mark Jansen 6d89d19f39
[LDR] Ensure we start with a valid pointer 2019-01-03 22:52:18 +01:00
Mark Jansen aa912422e5
[LDR] Actually allocate what is asked for 2019-01-03 22:52:18 +01:00
Mark Jansen 3e9cf62470
[LDR] Don't dereference a possible nullptr on a malformed forwarded import 2019-01-03 22:52:18 +01:00
Mark Jansen 97d0595bf6
[LDR] Don't dereference a possible nullptr 2019-01-03 22:52:06 +01:00
Mark Jansen 04ff7481b1
[LDR] Introduce a private heap for the loader.
This ensures we can still do stuff when the process heap is corrupted.
2019-01-01 16:20:13 +01:00
Thomas Faber 0013b0f71c
[NTDLL:LDR] Avoid passing an uninitialized variable to another function. 2018-12-28 13:41:09 +01:00
Mark Jansen 1a9b50690a
[LDR] Include dllname in snap failure DPRINT.
CORE-15135
2018-10-03 19:34:14 +02:00
Mark Jansen 06eb99edef
[NTDLL][KERNEL32] Implement FLS callbacks. 2018-09-15 17:56:03 +02:00
Mark Jansen 191dceb034
[LDR] Load kernel32 in LdrpInitializeProcess.
This allows kernel32 to register itself for manifest probing when loading dlls
CORE-9219
2018-08-27 20:05:00 +02:00
Mark Jansen ad08c6631b
[LDR] Guard some sections where we grab a lock.
CORE-14532
2018-08-13 13:24:12 +02:00
Mark Jansen 55053f0099
[LDR] Add debug logging when we encountered an exception in dll/tls callbacks.
CORE-14532
2018-08-13 13:24:12 +02:00
Mark Jansen dfff8ed0d8
[LDR] Protect calls from LdrpCallInitRoutine and LdrpCallTlsInitializers with SEH.
CORE-14532
2018-08-13 13:24:00 +02:00
Timo Kreuzer 0f8439aa71 [DLLS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Mark Jansen 9c48edb58c
[LDR] Release the loader lock the same way it was acquired 2018-07-22 17:17:36 +02:00
Mark Jansen 60a1006d0f
[LDR] Initial verifier implementation 2018-05-12 13:35:10 +02:00
Mark Jansen 5a68fbeb43
[SDK] Correct NtGlobalFlag names. 2018-05-12 13:34:24 +02:00
Mark Jansen ab240d1b6d
[NTDLL] Allow shimdata to override the process manifest. 2018-04-12 18:49:25 +02:00
Mark Jansen d49004352f
[NTDLL] Check the process manifest at startup for a compatibility section. 2018-04-09 19:36:09 +02:00
Giannis Adamopoulos f318a25e10 [LDR] Overhaul sxs support in ldr
* Remove the hacky find_actctx_dll form ldr that was taken from wine. LdrpResolveDllName and LdrpCheckForLoadedDll should get a parameter that is already redirected.
* Use RtlDosApplyFileIsolationRedirection_Ustr in LdrpLoadImportModule and LdrpUpdateLoadCount3 to redirerect the input parameter.
2017-12-24 21:19:03 +02:00
Ivan Labutin d6792047f3 [NTOS][NDK][RTL] A bunch of 'wrong size' fixes 2017-12-20 06:56:09 +01:00