- Remove CmiCreateNewRegFile and the way new hives were created, saved, then re-reloded. Instead initialize a new hive only once.
- Add support for calling either HINIT_FILE or HINIT_CREATE with a hive, and support log file hives now.
- Make hacks/oldcm differences smoother, and copy routine to cmsysini.c, since it's now compatible with the rewrite. This is probably the last function that was easily convertible/modifiable.
svn path=/trunk/; revision=26716
- Allow cmlib to support HINIT_FILE flag for HvInitializeHive. This means the kernel doesn't need to create a section for the hive, then call HvInitializeHive with HINIT_MEMORY anymore, and can simply send the file handle. I wrote a sneaky little hack in cmlib which actually ends up doing the same idea, albeit not by using a section, making it portable.
- Fix a serious bug in CmpFindSubKeyInLeaf affected by our lack of alphabetically-sorted cells; the linear search I hacked was slightly broken.
- Remove the need to hold a LogFileName in the hive structure, since we generate it dynamically now.
svn path=/trunk/; revision=26712
- Merge code into cmkcbncb.c related to KCB/Cache initialization (This is "Dead" code for now, since it's not used, just initailized.)
- Rename CmiRegistryLock to CmpRegistryLock.
- The new /config registry code is now totally isolated from the old /cm code, although some of the old structures are still used until the actual rewrite is fully merged/finished.
svn path=/trunk/; revision=26710
- Allow caller to have full power over handles and filenames being used instead of hard-coding a pointer to the registry hive.
- Setup proper I/O flags to disable compression and open for random access, backup-intent and allow disabling buffering.
- Allow proper access mask/share mode when booting off read-only media.
- Call the FS driver with FSCTL_MARK_AS_SYSTEM_HIVE if instructed.
- Call with FSCTL_SET_COMPRESSION to make sure compression is off.
- Allow creating the hive if it doesn't exist already.
- Consider 0-byte opened hives as new hives.
- Allow caller to request volume sector size and validate with hive cluster size.
- Make .log hives hidden.
- Implemement CmpCreateEvent to allowed for overlapped I/O registry operations.
- Move more globals to cmdata.c.
svn path=/trunk/; revision=26705
- 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