Commit graph

24831 commits

Author SHA1 Message Date
Maarten Bosma b4e08acebe Forgot to include surface_main.c in ddraw.rbuild.
svn path=/trunk/; revision=26725
2007-05-12 15:24:54 +00:00
Maarten Bosma c0c39ccc77 DirectDraw rearrangement. (part 2/2)
svn path=/trunk/; revision=26724
2007-05-12 14:58:26 +00:00
Maarten Bosma b2247432db DirectDraw rearrangement. (part 1/2)
svn path=/trunk/; revision=26723
2007-05-12 14:20:12 +00:00
Magnus Olsen afe388c584 sorry did use some private headers that are not commited yet, here is win32kdxtest comping fix.
svn path=/trunk/; revision=26722
2007-05-12 13:58:27 +00:00
Maarten Bosma 52e0d50e08 Deactivate a check.
svn path=/trunk/; revision=26721
2007-05-12 13:17:01 +00:00
Eric Kohl 7e499053cd - Attach clock specific data to the window instead of storing them in global variables.
- Stop the clock and show the system time when the user changes the system time.

See issue #2241 for more details.

svn path=/trunk/; revision=26720
2007-05-12 12:37:23 +00:00
Ged Murphy d5d68cf53f - Add winhelp based on Wine.
- Not fully complete and has some bugs.
- go to help -> help on help for a preview

svn path=/trunk/; revision=26719
2007-05-12 10:14:45 +00:00
Magnus Olsen 62ae8a3919 update dxhaltest with some new test, Thuse test are not 100% correct in all case. some error should be supress when it been run in vmware with windows or reactos
svn path=/trunk/; revision=26718
2007-05-12 10:14:22 +00:00
Aleksey Bragin a3d6e8f3e9 Undo last change, since it's an index in an array of TCHARs, so "1" is correct.
svn path=/trunk/; revision=26717
2007-05-12 08:44:49 +00:00
Alex Ionescu 8202615b33 - Rename CmiInitNonVolatileRegistryHive to CmiInitHiveFromFile.
- 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
2007-05-12 08:27:28 +00:00
Magnus Olsen 66d03d55cd did see a small mistake use sizeof(TCHAR) for adding NULL termeting of string for u do not known if we switch compile regedit as unicode-16 or ANSI.
svn path=/trunk/; revision=26715
2007-05-12 08:27:00 +00:00
Alex Ionescu ff7c618dd0 - Change CmiInitNonVolatileRegistry hive to use CmpOpenHiveFiles and CmpInitializeHive. Required a lot of hacking to get to work right, but at least it does, and uses our new code paths.
- Update CmpInitializeHive with the HINIT_FILE hack required for current cmlib functionality.

svn path=/trunk/; revision=26714
2007-05-12 06:47:39 +00:00
James Tabor 7ae94663c6 Moving FLOATOBJ code in preparations of implementation of basic float storage emulation and float code processing.
svn path=/trunk/; revision=26713
2007-05-12 04:48:40 +00:00
Alex Ionescu ef1f549526 - Get rid of CmiCopyKey since it was dead code. Make CmiScanKeyForValue and CmiScanForSubKey simple wrappers around the newer CmpFindSubKeyByName and CmpFindValueByName routines.
- 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
2007-05-12 03:28:04 +00:00
Alex Ionescu 6ef9f575cb - Move CmInitSystem1 to cmsysini.c and merge in existing code from Cm rewrite branch.
- 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
2007-05-11 23:35:19 +00:00
Dmitry Gorbachev 10f84bdddc Do not write beyond the buffer.
svn path=/trunk/; revision=26709
2007-05-11 23:17:44 +00:00
Dmitry Gorbachev acd6160248 Do not write beyond the buffer.
svn path=/trunk/; revision=26708
2007-05-11 23:15:53 +00:00
Dmitry Gorbachev 14f97db8a4 Do not fail with less then two arguments.
svn path=/trunk/; revision=26707
2007-05-11 23:12:49 +00:00
Timo Kreuzer c04165689d make caption font bold again
svn path=/trunk/; revision=26706
2007-05-11 22:57:21 +00:00
Alex Ionescu 47687d1136 - Copy CmOpenHiveFiles to cminit.c and rename to CmpOpenHiveFiles. Extend the functionality of the routine:
- 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
2007-05-11 22:51:11 +00:00
Alex Ionescu 57ddb7b014 - Move Cmlib wrapper functions to cmwraprs.c and add the file -- no code change.
- 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
2007-05-11 21:35:56 +00:00
Alex Ionescu e433606342 - Move CmpCreateRootNode and CmpCreateRegistryRoot to cmsysini.c as well, and add some fixes to CmpCreateRegistryRoot to make it compatible with the Cm Rewrite when it's done.
- 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
2007-05-11 19:34:11 +00:00
Alex Ionescu 703c503a4f - Move CmpInitializeSystemHive and CmpCreateObjectTypes to cmsysini.c since they're almost identical to the Cm rewrite and compatible, so they're considered "new" code (although they still use EREGISTRY_HIVE).
- 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
2007-05-11 18:58:34 +00:00
Alex Ionescu 010910bc34 - Add missing ACE structures to ntifs.h.
- 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
2007-05-11 18:15:13 +00:00
Dmitry Gorbachev 852a223ab9 - Terminate the string. NtUserMenuItemInfo() sometimes returns no string.
- Check if NtUserBuildMenuItemList() returns negative result.

svn path=/trunk/; revision=26700
2007-05-11 14:12:57 +00:00
Dmitry Gorbachev 5b30343d53 Check result of DRIVER_FindFromHDrvr().
svn path=/trunk/; revision=26699
2007-05-11 14:12:40 +00:00
Dmitry Gorbachev 915201e112 Fix (partially) bug #2243.
svn path=/trunk/; revision=26698
2007-05-11 14:12:21 +00:00
Aleksey Bragin 5e9f050616 Fix for linux build (#include "..\ -> #include "../).
svn path=/trunk/; revision=26696
2007-05-11 13:07:54 +00:00
Alex Ionescu 384af65d69 - More simplification: Get rid of CmImportBinaryHive, CmpImportSystemHive, CmpImportHardwareHive and all of import.c!
- 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
2007-05-11 06:24:00 +00:00
Alex Ionescu 59a8c8c5dc - Remove unusued, complex hive checking code from regfile.c.
- 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
2007-05-11 04:59:38 +00:00
Alex Ionescu 107f14ad9f - CmpInitializeMachineDependentConfiguration: Finish up by using the same code as for System BIOS Version detection for the Video BIOS Detection. This routine should be pretty much finished now since all required hardware keys are created.
svn path=/trunk/; revision=26686
2007-05-10 21:40:39 +00:00
Alex Ionescu 65a66f73b8 - Add code to detect and save the BIOS Version string to the registry. We use the same detection patterns as Windows for now (Ver, Rev, Rel, v0-9).
- 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
2007-05-10 21:36:24 +00:00
Alex Ionescu 0efeac48a8 - Remove CPU Detection code from FreeLDR (hwcpu.c) since our kernel properly does the same job now (and better).
- Remove ReactOS hacks from recent code due to FreeLDR, since it doesn't conflict with us anymore.

svn path=/trunk/; revision=26684
2007-05-10 20:51:50 +00:00
Alex Ionescu 3fcfcbce89 - CmpInitializeMachineDependentConfiguration: Use the same strategy as for the BIOS to get the Video ROM BIOS Date as well and save it into VideoBiosDate.
svn path=/trunk/; revision=26683
2007-05-10 20:43:40 +00:00
Alex Ionescu 3511920f89 - Create \Device\PhysicalMemory in Phase 1 instead of Phase 2, since CmInit needs it.
- 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
2007-05-10 20:36:15 +00:00
Alex Ionescu b5dc8db0ee - CmpInitializeMachineDependentConfiguration: Add Processor Name and Vendor ID as well (the former doesnt' work on QEMU because QEMU desn't support CPUID-EX, but on VMWare, I get: Dual Core AMD Opteron(tm) Processor 185.
svn path=/trunk/; revision=26681
2007-05-10 19:06:52 +00:00
Alex Ionescu 82bcb975e4 - CmpInitializeMachineDependentConfiguration: Write FeatureSet, MHZ and Update Signature to registry CentralProcessor node.
svn path=/trunk/; revision=26680
2007-05-10 18:11:11 +00:00
Alex Ionescu bd87454d22 - Make CmpInitializeMachineDependentConfiguration create the FloatingPointProcessor hardware key/ARC node.
svn path=/trunk/; revision=26678
2007-05-10 18:04:41 +00:00
Alex Ionescu 0d78fd8f3d - Add more code to CmpInitializeMachineDependentConfiguration to create the BIOSINFO key and to start working on the CentralProcessor key (which, in ReactOS, FreeLDR creates when it shouldn't). Creates the basic CentralProcessor nodes for now.
- 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
2007-05-10 17:52:09 +00:00
Alex Ionescu 78b58e34df - Add i386/cmhardwr.c and start implementing CmpInitializeMachineDependentConfiguration. Currently it only detects and writes the key for PAE.
- Call the API from CmInitSystem1.

svn path=/trunk/; revision=26675
2007-05-10 16:42:24 +00:00
Dmitry Gorbachev 5b30480967 Fix a bug in ScServiceMainStub(), add more checks.
svn path=/trunk/; revision=26672
2007-05-10 10:13:01 +00:00
Alex Ionescu 107cb5719e - Remove/deprecate some certain chunks of Cm which are not critical to booting and not even to applications (such as NtSaveKey, which didn't even have NtRestoreKey) and mark them as unimplemented functions.
- 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
2007-05-10 09:14:15 +00:00
Alex Ionescu e72d90dbc8 - Move CmpSetSystemValues to cmsysini.c
- 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
2007-05-10 01:48:54 +00:00
Alex Ionescu 0285323c9d - Refactor the registry initialization code to be somewhat closer to the Cm rewrite branch.
- 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
2007-05-10 00:02:04 +00:00
Alex Ionescu 83bd3b5fc0 - Fix crash in Install CD introduced in 26666, with a ludicrious hack for FreeLDR
svn path=/trunk/; revision=26668
2007-05-09 21:15:52 +00:00
Aleksey Bragin 959a4b6f1e - Add error messages to prevent silent failing, no functionality change.
svn path=/trunk/; revision=26667
2007-05-09 20:52:08 +00:00
Alex Ionescu 33ea79c7fe - Implement CmGetSystemControlValues and all related low-level Cm functionality required to select the proper control set and read all the kernel variables during Phase 0 initialization. We can now read time-zone data, version, suite, language IDs and other important kernel variables in the lowest-level boot phase.
- 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
2007-05-09 18:30:21 +00:00
Alex Ionescu 5aaa1671e7 1) Update KiPcToFileHeader to work in early-boot stage by looking through the KeLoaderBlock instead.
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
2007-05-09 16:15:22 +00:00
Aleksey Bragin d80647e124 - Add km regtests to build.
- Add a very simple memory monitor (to be improved later).

svn path=/trunk/; revision=26664
2007-05-09 11:55:19 +00:00
Aleksey Bragin 7ba021c0ca - Move tests from trunk.
svn path=/trunk/; revision=26663
2007-05-09 11:18:34 +00:00