Don't use PWORK_QUEUE_ITEM casts in ExQueueWorkItem calls, but use the explicit underlaying work queue item object instead.
svn path=/trunk/; revision=71330
- Keep track of physical pages allocated for special pool, and respect the initially calculated MiSpecialPagesNonPagedMaximum
svn path=/trunk/; revision=71304
Use the PairCount variable of the MCB to store the current amount of runs in the table. This will be properly used later on.
CORE-11002
svn path=/trunk/; revision=71178
Modify the ret8 interrupt return path in KiTrapExitStub, so that nested interrupts (e.g. as a result of an interrupt storm from a broken driver) will work more "like on Windows", i.e., now the broken driver will not cause stack exhaustion anymore, but a proper system hang! And it will be an even more efficient system hang than Windows has! This is not the '90s. You can't just walk up and crash the system, you have to do something cool first and do it properly "like Windows does", even if you're not using the same assembly instructions.
svn path=/trunk/; revision=71174
In FsRtlAddBaseMcbEntry(), try to detect incompatible LBNs before altering mappings.
This fixes a few tests failures
CORE-11002
svn path=/trunk/; revision=71145
Implement in a really simple way CcSetBcbOwnerPointer() and CcUnpinDataForThread(). They don't do everything the Windows Cc does, but at least, they do the basic job.
CORE-10996
svn path=/trunk/; revision=71030
The Ewoks concil said it's fine to dereference null pointers in the kernel, so, partly revert r70819 (by partly, I mean: revert everything excepted the comments that were fixed!).
Also add asserts that exist on Windows to make it obvious we're about to kill the whole kernel
To make it clear: fix the FSD!
svn path=/trunk/; revision=70824
Don't attempt to null-dereference fastio routine without checking whether it was set first.
This fixes RW with FSDs using cache but no FastIO possibilities.
CORE-10892
svn path=/trunk/; revision=70819
If the cache wasn't initialized by the FSD serving the image, don't allow section creation to avoid later (dramatic) failure in CC.
Based on a patch by Sylvain Deverre.
CORE-10038 #comment Modified patch committed in r70756
svn path=/trunk/; revision=70756
Replace old bugzilla report IDs to their JIRA counterparts.
[LIBUSB]
The third parameter of IoRegisterDeviceInterface is a pointer (optional). Use NULL instead of 0.
svn path=/trunk/; revision=70680
- Initialize global variables to known default values.
- When Inbv initializes the display, reset the video mode *ONLY* if we do not have a custom boot logo (because otherwise we want to see our custom boot logo!). This also fixes the video mode used by ReactOS when booting it using Windows ntldr!
svn path=/trunk/; revision=70678
[BOOTLIB]: Implement BCD element deletion (bootreg: implement key deletion)
[BOOTMGR]: Implement BL_FATAL_ERROR_BCD_ENTRIES fatal error.
[BOOTMGR]: Stubplement support for memory list data parsing (when memtest.efi will run), and stubplement support for boot persistent data blobs.
[BOOTMGR]: Stubplement boot sequence support, create stub for boot entry population.
[BOOTMGR]: Stubplement boot entry selection, create stub for boot entry enumeration.
Mostly factoring-level changes to get us closer to the needed code paths.
svn path=/trunk/; revision=70609
- One less hardcoded number.
- Minor code formatting.
[NTOS]
- Minor code formatting (cmvalche.c).
- The key-node timestamp can usually be retrieved without using another temporary value.
- The security descriptor copy allocated for the hive can be freed after it was assigned to it.
[MKHIVE]
- Minor formatting of the source headers.
- Update the list of registry value types; add another error code (to be used later on).
- Remove now unused "ntoskrnl.h" header.
CORE-10793
svn path=/trunk/; revision=70601
- Fix some structure definitions to match Win2k3 symbols (define also _SECURITY_DESCRIPTOR_RELATIVE for the host-tools so that the CM_KEY_SECURITY structure is always correctly defined).
- Complete other structure definitions with respect to the NT version defined at compile time; http://msdn.mirt.net/ was used as the source of information.
- Add the definition of CM_BIG_DATA for supporting big valued keys (see also http://www.msuiche.net/2009/06/07/windows-vista-and-later-registry-secrets/ for what they are).
[NTOS]
- Move CM functions defined in the CMLIB out of the internal ntoskrnl headers.
svn path=/trunk/; revision=70579
Remove a very old hack (that dated back from the Configuration Manager rewrite): now the hives are already correctly loaded in memory, therefore there is no need to call CmCreateRootNode after creating a hive, because the root node is subsequently initialized with calls to CmpCreateLinkNode. The comment saying that calls to CmCreateRootNode can be removed when CmpCreateLinkNode is used, is now in order. This means we correctly parse & mount the hives. The CmCreateRootNode function is now only used in the 'mkhive' tool in order to create file hives, since this tool needs to create new hives from nowhere (that's why also our bootloaders do not need this function: they only load & parse existing hive files).
The fact that this hack remained caused us hidden troubles: some hives (SAM, SOFTWARE) had "two" root keys: a first one that was unused (which was created by this hackish call), and the second one which was the one used (and was created by CmpCreateLinkNode as expected).
svn path=/trunk/; revision=70575
- The BaseBlock->Length member is really the size in bytes of the full hive, minus the header (base) block size.
- Remove the last remnents of the "hack of doom" aka. the one similar in magnitude to the US national debt, addendum to r61621 and r26712. The FileSize can be computed with BaseBlock->Length.
svn path=/trunk/; revision=70565