- Remove SEH and callbacks (yes this is "bad", but won't break anything, and it will be added back).
- Try to make the code as similar as possible to isolate broken-Ob calls from proper Cm behavior.
svn path=/trunk/; revision=30705
- Get rid of registry.c.
- Move CmpLinkHiveToMaster to cmsysini.c since it now uses new config code and works properly.
- Move CmpRosGetHardwareHive to cmsysini.c since it's an initialization function (will go away eventually).
svn path=/trunk/; revision=30704
- Enable parallel hive loading, this speeds up boot by loading the registry in 6 threads instead of just one (once we start having large registries and MP support this will be more evident).
- Added some little hacks to make this work for now.
- Fix a memory leak in CmInit1.
- Add hardware hive to machine hive list so it can be properly loaded after.
svn path=/trunk/; revision=30703
We already had such a check in the code, but after Brandon's copy.c rewrite in r16561, it never got called.
I removed the old check now and put a new one at the right position.
See issue #2827 for more details.
svn path=/trunk/; revision=30696
- Enable code in CmiInitHives to take advantage of the new link code when using the SYSTEM hive on the bootcd/setup.
- Don't skip CmpCreateControlSet anymore, just add a simple hack to hard-code Current to 001.
- Remove CmiInitControlSetLink since CmpCrateControlSet now does the work
- Enable code in CmpInitializeSystemHive to use CmpInitializeHive(HINIT_CREATE) when creating a new SYSTEM hive, since we now have new link code that supports the "Allocate" flag.
- This means we now have a working SYSTEM hive on the Boot CD as well since early bootup, and not only when NtInitializeRegistry is called
- Do bootcd vs hard-disk boot registry path setup in CmpGetRegistryPath instead of in-line.
svn path=/trunk/; revision=30695
- Don't derefernece the parent key since we need to keep a reference to it
- Set the hive dirty flag to clean after a connect
- Simplify code
- Move code as part of CmpLinkHivetoMAster
- Use new function CmpCreateLinkNode instead of CmpDoCreate
- Fix some asserts in CmpCreateLinkNode since we don't lock the KCB yet.
svn path=/trunk/; revision=30694
Factor out common datagram receive code.
Actually implement datagram cancellation.
afd:
Reorganize IRP cancellation and simplify socket shutdown.
Fix datagram recv with no address differently (and better).
Overall: fix hang after ping.
svn path=/trunk/; revision=30693
the DirectDrawEnumerateProcData struct are from wine. rest of the code are writen by me.
the DirectDrawEnumerateExA are not finish but it is a start.
svn path=/trunk/; revision=30681
- Refactor CmiLoadHives using new config routines instead of deprecated cm routines.
- Stop using deprecated CmiScanKeyForValue (delete regfile.c as a result).
- Add code for parallel hive loading to speed up boot process, but don't yet fully use it due to changes required in linking hives.
- Add code for new hive linking process (CmpCreateLinkNode/CmpDoOpen). Not yet used to avoid too many changes in one patch.
- Add new code in CmiLoadHives to deal with updated linking process when it becomes used.
- Implement NtLoadKey2 to cal NtLoadKeyEx.
- Implement NtLoadKeyEx as a new config routine, using CmLoadKey, move out of Cm.
- Add some more code in CmpInitializeSystemHive to deal with SYSTEM hive creation during setup, once hive linking is refactored.
- Implement a new command except for flushing -- open: CmpCmdHiveOpen. Used by CmLoadKey.
- Add support for impersonating the SYSTEM account if the hive can't be open in the current client security context.
- Fill out CmpMachineHiveList, to be used in parallel hive loading.
svn path=/trunk/; revision=30680