- move IndexFromPImgThunkData and PFromRva to delayimp.h
- use __ImageBase insetad of _image_base__
- fix include guard
- RVA is a DWORD, not a PVOID
svn path=/trunk/; revision=42172
This library will allow to delay import from dlls, if used together with the corresponding delayimport lib for that dll. An initial patch for dlltool can be found in bug #4730.
Based on Matt Pietrek's "Under the Hood" article: http://www.microsoft.com/msj/1298/hood/hood1298.aspx and msdn documentation.
svn path=/trunk/; revision=42169
- Tested wine (some improvements and losses): Msi seems to be fixed, did not test before these changes. My guess is Jeffrey Morlan fixed it in 42163, so a Big Thank You!!! Tested Firefox 1.15.xx and AbiWord 2.6.8.
svn path=/trunk/; revision=42168
- Fix LED programming (we didn't set LEDPE so all our programming was ignored)
- Add some other LED programming
- Fixes bug 4703
svn path=/trunk/; revision=42152
- Also fix its value such that it's PDE aligned -- this makes sure that we don't step on any of the boot loader's PDE mappings and can blow everything away later.
- Initialize the MmSystem/User/Probe Addresses in ARM3 as well (no functional change).
- Print out a lot more of the VA ranges in ARM3's Phase 2 initialization. Most of the VA space is now dumped out.
- Write out the code to initialize session space VA ranges
- Image space, view space, working set space and pool space values are all calculated properly.
- NT default sizes are used, without support for registry overrides (yet).
- Also system view space is initialized and sized.
- Code is heavily commented and explained for inquisitive minds.
- Define the paged pool start address, minimum/default size, and add some extra pool header asserts/definitions.
- Define MmPagedPoolInfo to keep track of all paged pool related information (start/end PTEs, VA ranges, allocation/free bitmaps, etc).
- Fixed a lot of comments and added some new ones to provide extra clarity.
- Implement MiBuildPagedPool. It has two jobs:
- Build and create the shadow system page directory, which double-maps the System process' PDE.
- More explenations are in the comments.
- Define the paged pool region and size, and initialize MmPagedPoolInfo accordingly.
- Create and setup the paged pool allocation and free bitmaps (again explained in the comments).
- There shouldn't be any real functional change yet due to this commit.
- We need to create memory areas for session space and system view space otherwise the VA regions could get used by ReactOS instead.
svn path=/trunk/; revision=42148
- Rewrite KSCREATE_ITEM handling to support clocks, nodes, allocators.
- Store create items in list instead of an array. Consequently, the code can be re-used for KSDEVICE_HEADER / KSOBJECT_HEADER functions.
- Implement KsAddObjectCreateItemToObjectHeader
- Implement now KspCreate and IKsDevice_Create properly
- Implement KsGetDevice by using KSBASIC_HEADER struct which must be positioned before its object specific (PKSFILTER, PKSFILTERFACTOR, PKSPIN)
- Remove a hack from KspCreateObjectType
[PORTCLS]
- Store real dispatched object in FsContext2
- Implement a fast device i/o handler
- Increase minimum data threshold when a stream stops prematurely by 10 audio frames (port driver WaveCyclic)
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[KMIXER]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
[SYSAUDIO]
- Remove the hack of checking wether pin create request is passed. Since create items now work nicely, use a different function and handle pin creation requests seperately.
svn path=/trunk/; revision=42143
- 1: No PFN Database exists
- 2: PFN Database exists
- 3: ReactOS NP Pool exists (deprecated)
- Cleanup ReactOS Mm init to work with this.
- ARM3 Phase 1 Init now uses pages directly from the physical memory descriptor.
- This similar to how "MmAllocEarlyPage" used to work.
- A new function MxGetNextPage now does this.
- MxGetNextPage can allocate more than just one page however (making it possible to get contiguous physical memory without going through the PFN-based MmAllocateContiguousMemory beast)
- Also MxGetNextPage will bugcheck with INSTALL_MORE_MEMORY if it runs out of pages.
- Renamed the physical memory descriptor variables to MxFreeDescriptor, MxOldFreeDescriptor instead of MiFreeDescriptor and MiOrgFreeDescriptor (based on NT symbols)
- Nonpaged pool PDEs, PFN database PDEs, and initial nonpaged pool PTEs are now allocated through MxGetNextPage.
- Fix an off by one error in the sizing of MxPfnAllocation.
- The PFN database is now fully "owned" by ARM3 in terms of its PDE mappings and VA location at 0xB0000000.
- ie. MmArmPfnDatabase is now MmPfnDatabase.
- The actual PFN database entries and setup are still done by the ReactOS Mm.
- Got rid of ARM nonpaged pool allocator test.
- Repositioned ReactOS nonpaged pool (deprecated) after the boot image (used to be after the PFN database).
- Paged pool follows.
svn path=/trunk/; revision=42131
- Rewritten Set/GetWindowContextHelpId.
- Removed NtUserRegisterClassEx, replaced it with NtUserRegisterClassExWOW.
- Updated all related files and functions.
svn path=/trunk/; revision=42128
- Implement KsDefaultDispatchPower, KsDefaultForwardIrp
- Return the correct device object in KsQueryDevicePnpObject
- Implement KsReadFile, KsSetInformationFile and partly KsQueryInformationFile
- Remove KspClose, KspRead, KspWrite, KspFlushBuffers, KspQuerySecurity, KspSetSecurity and all these IOCTL in KspDispatchIrp
- Rewrite KsDispatchIrp to handle IRP_MJ_CREATE & IRP_MJ_POWER, IRP_MJ_PNP for AV Stream minidrivers and forward IRP_MJ_SYSTEM_CONTROL requests to the registered pnp base object
- Unsupported IOCTLs are now completed with KsDispatchInvalidDeviceRequest (previously leaked)
svn path=/trunk/; revision=42117
- As a temporary hack, hard-code them to 0x80000000, a valid RAM address on OMAP3.
- This code path is only used on ARM anyway, so it's not such a big deal, but a better fix should be done later.
- OmapLDR can now boot FreeLDR, which attempts to load NTOSKRNL.EXE and dies.
- Need to revisit significant parts of the MMU code before attempting to go further; this won't likely be done for a good couple of months.
svn path=/trunk/; revision=42116