- Create a LDR_DATA_TABLE entry for each module (driver, hal, kernel) and properly fill it out and insert it into the loader block.
- Use the NLS data block to hold pointers to the NLS tables.
- Use the ->RegistryBase/Length loader block members to hold pointers to the SYSTEM hive.
- Create a MEMORY_ALLOCATION_DESCRIPTOR for each type of memory currently used (LoaderNlsData, LoaderRegistrydata, LoaderSystemCode, LoaderHalCode, LoaderBootDriver).
- Changes are currently UNUSED!
- Revert LOADER_PARAMETER_BLOCK change, it actually really is PNLS_DATA_BLOCK.
svn path=/trunk/; revision=24318
- Set the booting CPU as idle if no next thread was scheduled.
- Raise IRQL to HIGH_LEVEL upon exiting KiInitializeKernel to match the re-lowering to DISPATCH_LEVEL in KiSystemStartup (and subsequent interrupt flush).
svn path=/trunk/; revision=24308
- Only check for break-in on the Boot CPU.
- Set priority to 0 *Before* lowering to DISPATCH_LEVEL.
- Also force interrupts to be enabled before lowering IRQL.
- Also set the idle thread's wait irql to DISPATCH_LEVEL (might fix some odd crashes) and set it as Running on UP builds (on SMP builds this is done in other code).
svn path=/trunk/; revision=24307
- Remove intrinsics in winddk.h since they're now properly done in intrin.h (thanks KJK!!!)
- Make freeldr.c setup the boot KTSS like NTLDR does, so that the GDT entry for it is valid (and remove the code that was doing this from Ki386InitializeTss)
- Refactor KiSystemStartup to use 100% dynamic pointers and machine data queried from the Loader Block or actual GDT/IDT/Selectors in memory, isntead of hard-coded ntoskrnl offsets. This makes it possible to be loaded by NTLDR, which sets these system structures up by itself. (we do it in freeldr.c, as hacks).
svn path=/trunk/; revision=24306
- Implemented KiRosFrldrLpbtoNtLpb to do a lightweight conversion and setup. Next patches will try to get rid of PLOADER_MODULE and use LDR_DATA_TABLE_ENTRY as well as increase bootstrap compatibility.
svn path=/trunk/; revision=24305
- Add stub for processing IRPs sent to the mouse driver
TODO (will be done once problem with load-order will be resolved):
- Store mouclass's callback address
- Actually call it thus making driver working
- Cleanup routines
svn path=/trunk/; revision=24300
- display the device icons for each item
- other bits and bats I'm too lazy to list
- it still load slowly due to multiple calls to SetupDiGetClassDevs. Need to think of a better way of gathering the info. For now though, it works.
svn path=/trunk/; revision=24297
- Spelling fixes
- More debug prints added to ease debugging
- Added entries for mouse and keyboard drivers (keyboard is currently commented out)
- Implemented actual usb mouse driver - contains 1 hack aimed to correct determining the endpoint. Driver fully works except for actually sending data to win32k/HID driver stack
svn path=/trunk/; revision=24296
Frank Richter <frank.richter@gmail.com>
setupapi: Duplicate behaviour of native SetupGetInfInformation with NULL ReturnBuffer and certain ReturnBufferSizes.
svn path=/trunk/; revision=24279
Change winlogon registry key to "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" for compatibility reasons, as some programs read it directly
svn path=/trunk/; revision=24278
restore no i386 arch define in rbuild
do not remove it, it is for build on no i386 platform
the was accident delete in r23830
svn path=/trunk/; revision=24272
1. fix do not delete all hdc and the restore hdc.
2. fix calc of SaveLevel the calc are not perfect
we only have 6 fails when we try restore dc now with wine gdi32 test dc
svn path=/trunk/; revision=24268