- Try to work around the ReactOS hack of saving user-mode registry flags in the keynode, by at least masking out the REG_OPTION_CREATE_LINK flag which interferes with HIVE_EXIT.
- Implement symbolic link parsing and resolution in the new parse routine (with CmpGetSymbolicLink).
svn path=/trunk/; revision=31059
- Add rasdlg to bootcd
- Delete unused icons for main.cpl
- Update English and Russian Translation for console.dll
- Small fix Russian Translation for kernel32
- Update Russian Translation for shell32
svn path=/trunk/; revision=31058
- Move CmpQueryKeyName and CmpDeleteKeyObject to config, and actually make CmpDeleteKeyObject do something.
- Partly implement CmpCloseKeyObject.
- Rewrite CmpLinkHiveToMaster to use ObOpenObjectByName instead of Ob-hacks, and add proper call in new parse routine to handle link node creation. We don't use Ob hacks for this anymore!
- Setup the CM_KEY_BODY when required.
- Call (and partly implement) EnlistKeyBodyWithKCB when required.
svn path=/trunk/; revision=31056
- Disable private KCB allocator and allocate separate pool entries for each KCB -- should fix issues some people have been experiencing until the real bug is found
- Remove all code that builds the name for the PKEY_OBJECT. This reduces non-paged pool allocation usage since the name is now stored compressed in the NCB, in paged pool.
svn path=/trunk/; revision=31047
- Use ParseContext in CmpDoCreate, removing OriginatingHive parameter since ReactOS doesn't use this.
- Sending the create options as key node flags is wrong -- identify this in the code (fixing this however will break the boot -- need to investigate).
svn path=/trunk/; revision=31046
* Don't try to link *user*mode program to static *kernelmode* libcntpr. msvcrt.dll exists for this.
* Fix main()'s declaration and definition.
* The above changes fix compiling of rostest module.
svn path=/trunk/; revision=31043
* Make the appearance and layout more like the MS version
* Added functionality for resetting scores
* Auto-complete the board, when the player is guaranteed to win
- Changes by myself:
* Add a new define WINEMINE_REGKEY to define the registry path of the WineMine settings only one time
* Store the settings in HKCU instead of HKLM and use REG_DWORD, when it makes sense
* Get WineMine to compile warning-free under MSVC
* Make the new "seconds" string translateable
* Make all WineMine resource files consistent and ensure that all visual elements are visible
See issue #2060 for more details.
svn path=/trunk/; revision=31032
- Get rid of CmiKeyObjectListHead and code that was adding/removing entries into it, it wasn't used for anything.
- Change the stupid subkey array (which caused pool fragmentation and slow-downs) with a linked-list version, since we never used the array for random indexing (the point of an array vs a linked list).
- Link key object children to parent key control blocks so that KCBs now own PKEY_OBJECTs (will help with parsing later).
- Get rid of CmiAddKeyToList since this is just an InsertTailList now.
- Remove ReactOS hacks in flush code.
- Do full parallel hive loading code in normal boot too, not just in cd-rom boot: CmpSetFileSize was causing the problem to happen so it's been disabled for now; this allowed removal of multiple ReactOS hacks.
- Use the "Allocate" flag during linking instead of hard-coding FALSE, since this also works now.
- Set HIVE_NOLAZYFLUSH to newly create hives since this is required for later.
- Remove CmiConnectedHiveList since it's not used for anything.
svn path=/trunk/; revision=31030
- Never trust MaximumLength passed from usermode when copying a unicode string (fixes a wide amount of crashes, tested with CdrLabel 4.1).
svn path=/trunk/; revision=31010
- Fix broken CmpTestRegistryLock functions, they could return FALSE even if the lock was held.
- Enable some extra assertions.
- Update KCB flags as well when updating keynode flags in CmpDoCreate.
- Update KCB Last write time as well when updating keynode lastwritetime in CmpDoCreate.
- Do CmpDoOpen with the registry lock held, and tell CmpCreateKeycontrolBlock to lock the KCB exclusively.
- Enable link-node create code to set the ChildHiveRefernece values. This is used to "escape" the current Hive when a KEY_HIVE_EXIT node is detected (an internal symlink) and required for new parsing semantics.
- Implement CmpHandleExitNode to test how "escaping" from an exit node into a link hive works (it does).
- Plug that function into the new parse routine for testing purposes.
- Enable CmpDoOpen path in the new parse routine, only used for link node creation for now.
svn path=/trunk/; revision=31009
- Begin fixing CM_KEY_NODE.
- More proper use of registry lock in create operations.
- Use ObOpenObjectByName (as a test only, ignore the results) in CmpLinkHiveToMaster.
- Implement routines to acquire/release two KCB locks atomically.
- Implement KCB dereference without lock.
- Fix locking in CmpCreateKeyControlBlock so that it now properly locks KCBs when requested.
- Implement rudimentary new-style parse routine that only walks the registry path until it's time to create the link node (since this is the only scenario where it's called from). Prints out the status of the operation but doesn't actually do anything.
svn path=/trunk/; revision=31004