- KeRosDumpStackFrames is fixed so that if the EIP can't be found in a module list, it's still displayed (just without the module name). Previously the EIP would not be shown, resulting in code running on the heap/stack/somewhere else not being shown as part of the trace.
svn path=/trunk/; revision=29332
- Fix typo in MMWSL.
- Add RtlRandom to NDK.
- Add MEMORY_PRIORITY values to NDK.
- Add KeAcquireSpinLockRaiseToSynch to NDK.
- Make MmInitializeProcessAddressSpace take two more parameters: one to specify flags, such as large page support, and another one to define the process being cloned, when fork() support will be added.
- Add KeInvalidAccessAllowed to deal with page faults in the special S-List code. The assembly code currently handles simple faults, but our MmAccessFault handler needs to start verifying the fault too.
- Mark LoaderReserve pages as LoaderFree, it seems they end up this way in Windows.
- Use MmNumberOfPhysicalPages instead of MmStats.NrTotalPages.
All NDK changes are discussed with Alex.
svn path=/trunk/; revision=29254
- Do Address Space initialization as per "Windows Internals II" slides, either for the Boot, System, Cloned User or New User Process cases.
- Rename MmCreateProcessAddressSpace to MmInitializeProcessAddressSpace, and MmCopyMmInfo to MmCreateProcessAddressSpace. What ReactOS did is correct as per "Windows Internals II", but the names were inverted.
- Clone the Object Table if we are the boot process, and only initialize part of the address space (since we don't need things like guard page, TEB, etc), however, do initialize and map the shared user data section.
- Make the initial system process and idle process share the same page directory instead of creating a new one.
- Use the same priority class as the parent process, if the process was in the idle or below-normal priority class.
- Only duplicate handles if the caller requested it, instead of always duplicating the process's handles!
- Generate a null image file name for system processes.
- Rename ObpCreateHandleTable to ObInitProcess and better handle race and out-of-memory conditions. Detect if auditing required, but don't do anything about it.
- Initialize the Idle/System process address space much earlier in the boot process, in MmInitSystem.
Thanks to Alex for providing various information, and answering all my questions.
svn path=/trunk/; revision=29223
- Fix MM_EXTEND_INFO definition.
- Fix MMWSLE definition.
- Fix EPROCESS definition.
- Add quota functions to NDK.
- Add one more parameter to PspMapSystemDll to support mapping large pages.
- Don't make the quota functions do anything for the system process.
- Add page file quota functions.
- Other misc small fixes.
svn path=/trunk/; revision=29214
- Add KeAcquireQueuedSpinLock / KeAcquireReleaseQueuedSpinLock, RtlCompareMemoryUlong definitions missing from IFS.
- Add actual section object definition to NDK
- More NDK fixes
- Fix incorrect definition of MMPTE_LIST
- Fix incorrect prototype of NtFlushVirtualMemory
- Fix incorrect prototypes of KeAcquire / ReleaseQueuedSpinLock
- Add a second parameter to MmCreateKernelStack to select the NUMA node on which the stack should be allocated
- Avoid usage of PROS_SECTION_OBJECT in Ps where possible
- Unimplement PsChargeProcessQuota. It was not working right
- Use PFN_NUMBER defined in DDK instead of PFN_TYPE internal ROS Type.
svn path=/trunk/; revision=29188
- On windows deleted objects have a KernelData value != NULL, so don't check for that when validating a handle, instead check if the type field in the upper 16 bits is 0
svn path=/trunk/; revision=29123
KSCATEGORY_AUDIO. Also detects existing audio devices in addition to
dealing with device arrivals. Slight code tidy-up. Also added additional
GUIDs to ks.h and ksmedia.h
svn path=/trunk/; revision=29106
(XP) it now detects when new devices have been attached. This
information is shared via a mapped file. I have also written a utility
to read the contents of the mapped file (this is not included - further
work is required).
Added a few missing #defines to dbt.h and also reformatted some of the
WinMM code so it was clearer to read.
svn path=/trunk/; revision=29100
- Copy the "pshpack*.h", "poppack.h" and "typedefs_host.h" (renamed to "typedefs.h") files to this directory
- Modify the Makefiles of cmlib_host, inflib_host, mkhive, unicode, wmc and wrc to remove the "include/psdk" dependency
- Remove the inclusion of "ntstatus.h" in cmlib_host and mkhive
svn path=/trunk/; revision=29042
- Use "typedefs_host.h" in both components now
- wrc needs *MANY* definitions from the Windows headers, therefore I created a new file "wrcrostypes.h", which contains all these definitions.
svn path=/trunk/; revision=28959
- Revert my changes to the "unicode" module in r28411 and r28423
- Include "typedefs_host.h" instead of the Windows headers in "wine/unicode.h", this component doesn't depend on target headers anymore.
To get it to work completely without Windows headers, I also had to copy some definitions from <winnls.h> to the "wine/unicode.h" file.
svn path=/trunk/; revision=28957
- better structure implementation for ENUMFONTDATAW
- change NewEnumFontFamiliesEx to use the new structure
- some fixes and comments
svn path=/trunk/; revision=28911
What the last change does and I missed last commit:
- use individual pool tags for each gdi object type
- allow object allocation w/o lookaside list
- don't search for the lookaside list/cleanup proc, the index into the lists is now calculated from type
svn path=/trunk/; revision=28900