- 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
- enumerate default open verb too
- look in HKCR progid for default verbs/file associations
- fix a bug in SHEOW_LoadOpenWithItems
svn path=/trunk/; revision=30992
- append %1 to allow executing in default command
- store prog id as default key in new file ext
- assign default file association when requested
svn path=/trunk/; revision=30990
------------------------------------------------
fix : use full path to dxg.sys when we trying load it
fix : only try unload dxg.sys if it really been load and got a fail status code.
svn path=/trunk/; revision=30963
- Reorder functions to reduce the number of required prototypes.
- Use Win32 types instead of generic types (e.g. int -> INT) and add missing VOIDs.
- No code changes.
svn path=/trunk/; revision=30957