This removes all fake apiset forwarders,
and handles apisets inside ntdll.
This is not 100% compatible with how windows does it, but it should be good enough for us.
- 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.
- Convert some notations to SAL2
- "Name" parameter in LdrGetProcedureAddress/LdrpGetProcedureAddress should be optional
- "DllCharacteristics" parameter in LdrGetDllHandle should be optional
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 ;)
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!
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.
* 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.