- Fix invalid errors about "system DLL kernel32.dll was relocated in memory". This reverts my previous fix suggested by rafalh and puts a better explanation there in comments.
svn path=/trunk/; revision=54629
- Improve and rewrite a few active context support functions in RTL, making them more close to their real functionality and throwing away wineisms.
- Uncomment a line in RtlAllocateActivationContextStack() which was causing it to always allocate a new activation context stack even if there was one. Thanks to my previous commit in kernel32 counterpart, this hack is not needed anymore and memory won't be wasted.
- Since we have mostly Wine's code in our activation context implementation, it makes sense to use it properly until it's rewritten, so first of all:
- Properly initialize current process's activation context support by calling actctx_init() from LdrpInitializeProcess instead of calling it all the time when a new context is created.
- Bring in create_module_activation_context and find_actctx_dll (newer version from Wine which supports manifests/assmeblies in local directories) and use it. Every place where it's used is marked as a HACK so it will be easy to detach it later.
- Remove actctx-related hack LdrpInitializeThread, now it works properly.
- Fix a typo in LdrpMapDll found by rafalh. Now the error-detection condition will be correctly evaluated.
See issue #6611 for more details.
svn path=/trunk/; revision=54623
- Zero-initialize ActivationContextStack pointer before calling RtlAllocateActivationContextStack(). This allows to get rid of some hacks in the existing ActCtx support in the ntdll loader and actual implementation.
svn path=/trunk/; revision=54618
- Don't strip relocations for some sections. Linker knows better if they are needed. Fixes removed relocations for delayed imports in idata section. Bug traced by me, Timo and Amine.
See issue #6618 for more details.
svn path=/trunk/; revision=54613
- Massive IPPacket usage overhaul (fix missing frees, initializations, and double frees)
- Make IP receive completely agnostic of the buffers and data location (part 2 of 2)
- Use paged pool for the majority of allocations during receive and assembly
- Implement ProtocolReceivePacket for faster performance with 3rd party NIC drivers
- Fix a buffer overflow if an IPv4 packet is received with a header larger than 20 bytes
- Many more improvements and bug fixes
svn path=/trunk/; revision=54597
- Fix more set active window API tests. The window postion change message with fixed lparam is erroneous. How can the address be the same since it originates from kernel space?
svn path=/trunk/; revision=54596
- Avoid an extra copy operation when receiving packets
- Optimize loopback code a bit
- Make IP receive independent of the location of the data and continuity of buffers in the NDIS packet for ProtocolReceivePacket support (part 1 of x)
svn path=/trunk/; revision=54593
[KERNEL32]: Replace BasepGetDllPath with BasepComputeProcessDllPath. Paths now work right. This is step 1. SearchPatchW is next (BasepComputeProcessPath), followed by CreateProcessInternalW (BasepComputeProcessExePath). Then all paths will work right.
svn path=/trunk/; revision=54592
- Fix a logic error
- Signal the balancer in the !CanWait case if we're too low on pages since it runs asynchronously as of recently
svn path=/trunk/; revision=54591
- Prevent buffer overflow when creating the display value for a value of type REG_MULTI_SZ.
- Prevent processing excess data when preparing a value of type REG_MULTI_SZ for editing.
svn path=/trunk/; revision=54590
- Print a warning and signal RosMm to trim pages if we drop below MmMinimumFreePages in MiRemovePageByColor and MiUnlinkFreeOrZeroedPage
svn path=/trunk/; revision=54589
- Depending on how big the full path is, either the application path or the full path should be used. Size the buffers correctly, too.
- If the caller did not specify a window title, should use the app path as title.
- Clear the current directory handle if InheritHandles is false.
- Correctly handle CREATE_NEW_PROCESS_GROUP and CREATE_NEW_CONSOLE.
- Check the failure codes of many APIs that we just assumed returned success.
- STARTF_USEHOTKEY | STARTF_SHELLPRIVATE should be checked when inheriting console handles.
- Handle 1MB and 16MB reservation requests.
- Bugs remain: ImageSubsystem not written, and failure will leak. To be fixed later.
svn path=/trunk/; revision=54587
- Convert the remainder of PL strings to UTF-8 to fix build, since that RC is declared as Unicode. Convert italian resources to UTF-8 and place all rc in a single section;
svn path=/trunk/; revision=54582