- Move CmCheckRegistry stub to cmcheck.c and add the file.
- Move CmpInitializeHive to cminit.c and add the file. Modify it to add Cm-rewrite compatible code (but #ifed out).
- Change the HiveList lock to a pushlock instead of an ERESOURCE. Rename CmiHiveListHead to CmpHiveListHead.
- Get rid of Cm security functions and stub the CmpSecurityMethod in cmse.c to always return success. Key security was never really working anyway, this just removes more code.
svn path=/trunk/; revision=26704
- Initialize some stuff that wasn't being initialized in CmpCreateRootNode.
- Use CmpHiveRootSecurityDescriptor in CmpCreateRegistryRoot to protect the key.
- Save the root handle globally so we can close it during shutdown.
- Add cmkcbncb.c with an empty stub for CmpCreateKeyControlBlock. Will copy from Cm rewrite branch later.
- Properly name fields of CM_KEY_NODE in the headers of the /config tree.
svn path=/trunk/; revision=26703
- Add code missing in CmpInitializeSystemHive from Cm Rewrite (mainly detecting boot type and self-healing settings).
- Free a memory leak.
- Enable security for key objects.
- Rename CmiKeyType to CmpKeyObjectType.
svn path=/trunk/; revision=26702
- Add missing SeLengthSid to ntifs.h.
- Implement CmpHiveRootSecurityDescriptor and use it in CmpInitializeSystemHive and CmInitSystem1 to properly secure system-created hives.
- Implement CmpInitializeHardwareConfiguration and call it. Its job is to populate the hardware hive, but FreeLDR already does this, so it doesn't do much at the moment.
svn path=/trunk/; revision=26701
- Fix CmpInitializeHive to set any flags that are passed, not assume HIVE_NO_FILE by default.
- "Import" the system and hardware hives using CmpInitializeHive instead of the cmimport.c routines which are gone.
- Get rid of old/unused cmdata.c in /cm.
svn path=/trunk/; revision=26693
- Implement CmpInitializeHive based on Cm Rewrite but keep code compatible with the current EREGISTRY_HIVE structure in the current Cm.
- Remove CmiCreateVolatileHive and CmiCreateTemp since they're unused.
- Implement CmpCreateRootNode based on CmRewrite and CmCreateRootNode in cmlib, CmpCopyName and CmpNameSize from Cm Rewrite and use them.
- Use CmpInitializeHive + CmpCreateRootNode for the master volatile hive.
svn path=/trunk/; revision=26692
- All BIOS Version strings are scanned and saved in a REG_MULTI_SZ key, as on Windows. QEMU BIOS Version String is correctly detected as the CVS/SVN $ID tag, which is good enough.
svn path=/trunk/; revision=26685
- CmpInitializeMachineDependentConfiguration: Map the IVT to detect the Video ROM Area and save it (corretly detected on QEMU at 0xC000). Then map the BIOS at 0xF0000 and scan it for the newest BIOS Date.
- Save detected BIOS date in the System Node's SystemBiosVersion, and save BIOS-default date (11 bytes before the ROM end) in Control\BIOSINFO.
svn path=/trunk/; revision=26682
- Add cmconfig.c and implement a helper routine that converts from ARC CONFIGURATION_COMPONENT_DATA to a Hardware Description entry and resource descriptor.
- Fix outdated _CONFIGURATION_TYPE definition in our DDK.
svn path=/trunk/; revision=26677
- This doesn't do much but clean up some of our code to make it easier to see what the critical parts are and reduce bug surface exposure.
- Move and slightly reformat (without touching any of the actual code) registry callback/notification code to cmhook.c.
svn path=/trunk/; revision=26671
- Remove all NTLDR-style profile code from cmsysini.c, since ReactOS doesn't support it, and there's no use lugging that code around.
- Rename CmpCreateCurrentControlSetLink to CmpCreateControlSet.
- Get rid of CmiCreateCuttenControlSetLink and use the new version instead, which also supports setting the right current Hardware Profile ID.
svn path=/trunk/; revision=26670
- No actual code/implementation changes per-se, simply moved code into new routines, deleted old routines, renamed some routines and added more error-checking.
- Also performed registry initialization in an order more analogous to Windows.
- Added cmsysini.c from the branch, but it's not used at the moment.
svn path=/trunk/; revision=26669
- New code uses cmlib from Filip Navara without any modification, and is fully compatible with reading Windows hives as well except XP's "Big value cells" (cells with > 2GB data) which aren't supported.
- Create /config directory where the new Configuration Manager code lies.
svn path=/trunk/; revision=26666
2) Make KeRosDumpStrackFrames use KiPcToFileHeader instead of KiRosPrintAddress. The end result is the same but we don't recursively bugcheck anymore during Phase 0 bugchecks :)
svn path=/trunk/; revision=26665
- We now print out error messages at each SESSIONX_INITIALIZATION_FAILURE directly on the screen.
- Build CmNtCSDVersion to include SP1 and our SVN Revision number.
- Build CmNtSpBuildNumber with the actual SP1 build number.
- Detect Headless Terminal usage.
- Build and create the CmVersionString.
- Display a startup banner similar to Windows based on the CmVersionString, also indicating the SVN revision.
- Fix some bugs in the timezone code.
- Display a second startup banner like Windows's, displaying memory and CPU counts.
- Add calls to initialize RANGE_LISTs, the Prefetecher, XIP Support and Phase 2 Executive Initialization.
- Parse the command line to detect /SAFEBOOT: switch and which type of safe mode boot this is.
- Display an optional third startup banner showing which safemode boot type this is.
- Detect /BOOTLOG switch and display a fourth startup banner if it's enabled, but don't initialize boot logging yet.
- Don't allow driver loading to push the progress bar beyond 75%.
- Write safe-boot type to registry, detect AlternateShell mode and validate that one is configured.
- Write MININT key to registry if booting in WinPE (LiveCD) mode.
- Don't leak smss environment and parameters anymore.
- Cleanup and reformat some code, use VER_ constants instead of magic numbers.
svn path=/trunk/; revision=26659
- Add hdlsterm.c for Headless Terminal Support and a stub function to detect if anyone is trying to do this.
- Add xipdisp.c for eXecute-In-Place Support and add a stub function to detect if anyone is trying this, as well as get various supported command line settings.
- Try to find XIP Memory Descriptor if one was given.
- Get Power Event callback from Win32k in PsEstablishWin32Callouts.
- Notifiy System Time Change callback with PoNotifySystemTimeSet.
- Add safemode and bootlog Message IDs.
svn path=/trunk/; revision=26658
- Use cleaner, inlined definitions for ExAcquire/ReleaseResourceLock.
- Convert ERESOURCE code to use a Queued In-Stack Spinlock instead of a regular spinlock.
- Force usage of the spinlock instead of cli/sti for DBG builds, and enable strict sanity checks.
- Fix incorrect check in ExpCheckForApcsDisabled.
- Properly handle memory starvation in the contended path.
- Make sure to allocate a semaphore if needed during ExAcquireSharedStarveExclusive.
- Fix multiple bugs in ExIsResourceAcquiredSharedLite.
- ExReleaseResourceForThreadLite didn't always properly set the ResourceOwnedExclusive flag, and didn't validate ownership.
- ExSetResourceOwnerPointer wouldn't set the owner if there wasn't one already.
svn path=/trunk/; revision=26654