- Add another hack to freeldr.c to make sure that HAL is the second entry in the Load Order list -- detect if it isn't and insert it as the second entry manually if it isn't.
- KdbInitialize can now assume that the 2nd entry in the Load Order list is HAL, just like ExpLoadBootSymbols and KD does, so get the Loader Entry directly instead of searching for it.
- Move KiBootTss and KiBootGdt to freeldr.c as this is where they belong -- they are not required for NTLDR/WINLDR boot style and are only used directly in freeldr.c.
- Get rid of the AcpiTableDetected variable from freeldr.c. Instead, set the AcpiTable entry to something and make PoInitSystem check for that instead to preserve the old behavior.
- Implement KdpGetFirstParameter and KdpGetSecondParameter for ARM too -- just retrieve R3/R4 here. Also rename those macros to clarify what parameters we are retrieving.
- Add MmIsSessionAddress stub and use it from KD handle session space properly in the Memory Query API, and ASSERT that we are not trying to do a copy to/from session space in MmDbgCopyMemory as we don't handle it properly. Put this in mmdbg.c for now as we don't implement session space, and it is only called from KD right now.
- Rename the 3 kdsup.c files to kdx86.c, kdx64.c and kdarm.c to differ them from each other.
- Implement KdpAllowDisable -- just check if any processor breakpoints are set on any processor in the system and disallow the disable if so. The routine is now architecture dependant, so move it to the appropriate files.
- Get rid of the MmFreeLdr* variables too. These have been deprecated for some time now.
- The ModuleObject and ImageBaseAddress parameters of MmLoadSystemImage are not optional so don't treat them as such, and don't zero initialize them as callers shouldn't rely on this.
- Set LDRP_ENTRY_NATIVE instead of LDRP_COMPAT_DATABASE_PROCESSED to mark the image as a native image. Also fix the value of LDRP_ENTRY_NATIVE.
- Fix definition of LDR_DATA_TABLE_ENTRY -- the Checksum member should be in the union too.
- Remove some unnecessary externs for stuff we now define globally in the kernel headers.
- Rename some variables in KD to better match the logic.
- Move some x86 only stuff from global ke.h and ke_x.h to the x86 dependent ke.h. Remove DR_ACTIVE_MASK as it has been deprecated/unused for a while now.
svn path=/trunk/; revision=44023
- Fix a critical bug in TOOLTIPS_NotifyFormat. Its first parameter changed from HWND to infoPtr pointer, however the function was not updated accordingly.
svn path=/trunk/; revision=44014
- Add more checks IDirectSoundCapture::CreateCaptureBuffer
- Implement IDirectSoundNotify interface
- Needs work from ks / portcls to work on formats supported natively by the driver
svn path=/trunk/; revision=43997
- Implement stereo to mono channel conversion
- Create a thread which performs the mixing
- Fixes messed up voice recording in Skype 3.6
svn path=/trunk/; revision=43994
- Move the resource routines to their own file instead of sysinfo.c.
- Add missing members to PCIPBUSDATA.
- Kill old, unused generic.rbuild.
svn path=/trunk/; revision=43991
Only 2 shift states are supported for now, I have to add a lot more output generation code to get at least 3 states up and running.
svn path=/trunk/; revision=43985
- CdfsVerifyVolume: Disable the delivery of normal Kernel APC's before acquiring resource and re-enable APC's after releasing resource. Fixes ASSERT from ntoskrnl/ex/resource.c. Noticed by Stefan.
svn path=/trunk/; revision=43982
Gabriel Ilardi
- Properly stub SHSetUnreadMailCountW and SHGetUnreadMailCountW to unregress Thunderbird and possibly other email clients.
See issue #4940 for more details.
svn path=/trunk/; revision=43971
A full-fledged file will have ligature data, up to 8 shift states, dead keys, etc, but that's not stuff we'll have to deal with at first for simple layouts.
By tomorrow we should be able to fully process and generate latin-alphabet-based language keyboard layouts.
svn path=/trunk/; revision=43970
- The physical memory support relies on several Mm variables and structures to be properly set up. Add a new flag, MiDbgReadyForPhysical, and set it when the debugger support can handle physical memory requests.
- Protect this page with a Memory Area to make the old Mm keep its dirty hands off it.
- Does not support I/O space or cache flags yet.
- Add generic KeInvalidateTlbEntry to invalidate a single TLB entry for a given address instead of flushing the whole TLB. Used by the debugger physical memory support as invalidating the whole TLB for every map and unmap of its debug PTE would incur significant overhead for large copies. Replace direct usage of __invlpg() with this in x86 code too.
- Fix incorrect cache flag check and set in KdpRead/WritePhysicalmemory for write combined requests. The debugger's Uncached flag was checked instead of the Write Combined flag, and the debuggers Write Combine number (0x3) was set instead of Mm's flag (0x20).
- Fix implementation of MmIsAddressValid (at least for x86; other architectures will need more checks). Just check the Address' PDE and PTE valid bits instead of using Memory Areas.
- Add missing ASSERTs to ensure the Memory Areas for paged pool, the PCR page, and the Shared User Data page are created.
- Add missing Memory Area for the 2 pages HAL currently uses for its own mappings on x86 -- previously, those pages could have been allocated by other parts of the OS, which would have resulted in serious corruptions.
svn path=/trunk/; revision=43960
- Fix the "fix" of un-protecting the 7 IDT entries on P5 in HAL's BIOS call code when setting the custom Invalid Opcode handler. The IDT was unprotected but the write protection wasn't reapplied after the BIOS call, breaking the work around.
Other:
- KdDebuggerEnabled is a BOOLEAN, so don't do a dword compare in KeUpdateSystemTime.
- Use better comment for the hack where we always allow page faults to be handled, even if they the fault occured with interrupts disabled.
svn path=/trunk/; revision=43958
The main parsing loop is pretty much done, now the tool "just" has to merge the states and perform a check for duplicate entries. Then it'll be ready to generate the output files.
svn path=/trunk/; revision=43949
- Fix a bug in KsCancelIo which accessed already freed memory
[PORTCLS]
- Cancel all audio stream irps when the it is used in looped stream mode. Fixes re-opening of playback / capture devices in DSound.
- Remove dead code
svn path=/trunk/; revision=43945
The tool does some minimal error checking for now, and attempts to begin parsing the LAYOUT section, but fails miserably and the code won't execute unless you've enabled verbose mode. I'm just using this commit as a checkpoint for now.
Also fixed SCVK structure to use the last member as a state flag.
Finally, added definitions for LAYOUTENTRY which will keep track of each row's column's values in the LAYOUT.
svn path=/trunk/; revision=43944