Commit graph

49669 commits

Author SHA1 Message Date
Alex Ionescu 9f51b3ff35 [SMSS2]: Implement KnownDLL and DOSDevice initialization now that the kernel bugs are gone. Compared to SMSS, SMSS2 is smarter and uses a Ldr callback to manually add any imported DLLs of KnownDLLs to the KnownDLL list, which helps with long-term app launch performance. Next up will be environment and page file.
svn path=/trunk/; revision=55324
2012-01-30 10:22:21 +00:00
Alex Ionescu 864a1bc6ae [NTOSKRNL]: Here's another gem. SMSS2 couldn't call LdrVerifyImageCheckSum, nor could it create Known DLL sections (of course, magically SMSS could). Turns out what Mm expects in terms of file access rights when you map a section has almost nothing to do with what it should expect. Added a new function to ARM3 (which had most of the code there already) so correctly determine which file access rights should be needed. One big change is that you can now map sections with PAGE_EXECUTE if you only have FILE_EXECUTE (FILE_READ_DATA no longer required), as things should be.
svn path=/trunk/; revision=55323
2012-01-30 10:15:29 +00:00
Alex Ionescu 25c5926fcb [NDK]: LDR_CALLBACK's second parameter is a PCHAR.
svn path=/trunk/; revision=55321
2012-01-30 09:43:24 +00:00
Alex Ionescu 3c2b7f8a5b [NTOSKRNL]: One of my favorite bugfixes to date: While working on SMSS2, I notice that Win32->NT path conversion is failing and %SystemRoot% is not being translated. Yet, this is supposed to be part of the core environment that the kernel sends to SMSS! I analyze the old SMSS, and in there, it works. Puzzled, I DPRINT1 out the environment only to see that it is empty. I do the same in the kernel -- empty! The old SMSS is currently manually regenerating its critical environment, as if the kernel never sent it (which perfectly hid the bug that our kernel...actually did never send it!). But why were we sending no environment? It turns out our environment string was 0x10000 bytes, just one byte longer than MAX_USHORT and overflowing back to zero -- hence our Appends were all silently failing. But why was our environment string 0x10000, when we allocate 0x1000 bytes only? And here comes the Mm bug. When you allocate virtual memory in Windows you are forced to use 64K alignment, and Windows internally will align the VAD on a 64K boundary. In ReactOS however, we actually allocate, map, and reserve a full 64K memory area, as well as actually modify the region size that the caller has sent, returning the caller a 64K-aligned size no matter what (whereas Windows would return the original 4KB size). I've thus added a simple hack which still allocates a full 64K memory area (who knows what would break if not), but only aligns the region size to a page size -- less swap pages are reserved, and the caller only receives a page-aligned region, instead of 64K. This now fixes ExpLoadInitialProcess and anyone else that was requesting a 4KB page and getting 64KB in exchange...
svn path=/trunk/; revision=55320
2012-01-30 09:42:47 +00:00
Alex Ionescu b42b421bea [SMSS]: Co-exist with SMSS2 by using OBJ_OPENIF when creating object directories and sections, in case SMSS2 has already done so (which now it probably will).
[SMSS2]: Implement all the required registry configuration parsing functions. KnownDLLs, DosDevices, PageFiles, Subsystems, ExcludedKnownDLLs, PendingFileRenameOperations, ObjectDirectories, Environment keys are all processed and put into lists. Other than creating the object directories and setting the environment variables, though, no other work happens -- but we do DPRINT1 what should happen.

svn path=/trunk/; revision=55319
2012-01-30 08:02:17 +00:00
Alex Ionescu bb3783a524 [NTOSKRNL]: hubris [ˈhjuːbrɪs], hybris n.
1. Belief that Ob is perfect.
Fix a major bug which allowed user-mode applications to get kernel handles if they so requested -- of course, they woudl then be completely unable to use such handles. This pattern is seen in Rtl code which we share, and where the intent is to give kernel kernel handles, and user user handles, so OBJ_KERNEL_HANDLE is unconditionally used, which in NT had the right effect. For us though, it gave unusable user-handles. This had the direct effect of completely breaking RtlQueryRegistryValues from user-mode if the TOPKEY or SUBKEY flags were used.

svn path=/trunk/; revision=55318
2012-01-30 07:48:49 +00:00
Alex Ionescu ddeb8354e4 [SMSS2]: Initialize a bunch more internal stuff, and start parsing the registry for settings. Right now just ProtectionMode and AllowProtectedRenames are parsed. Stub functions needed for the rest of initialization. Create the \Sessions directory. Hack to work under setup. Loop BootExecute and PageFile entries. Create SMSS environment. Detect MiniNT mode (PE/LiveCD). Delete SAFEBOOT_OPTION if found.
svn path=/trunk/; revision=55317
2012-01-30 05:32:34 +00:00
Alex Ionescu bbaf1702fe [SMSS2]: Create the VolumesSafeForWriteAccess and Sm2ApiPort. Create all the required security descriptors. Create the two API threads. Initialize a bunch of other stuff needed for later. Initialize tag heap and enable hard errors. Api loop waits on the LPC port but nothing should be going through there for now.
svn path=/trunk/; revision=55314
2012-01-30 03:44:27 +00:00
Alex Ionescu 4459aa9ea3 [SMSS]: Oh, right, compilation units. I had forgotten how much I hate rbuild.
svn path=/trunk/; revision=55313
2012-01-30 03:16:47 +00:00
Alex Ionescu df41abd401 [SMSS2]: Oh, right, rbuild.
svn path=/trunk/; revision=55312
2012-01-30 02:49:16 +00:00
Alex Ionescu 88cd0f3813 [SMSS2]: Flesh out the _main function in the new SMSS, including the SEH filter and SmpTerminate support. Instead of launching Winlogon (The "initial command", we launch the ReactOS SMSS for now -- and kill the system if it is ever terminated, as we should). We use the right priority, set the right critical flags, use the correct debug parameters, and acquire/release the correct privileges. Only thing not supported is launching ntsd if the "Debug Initial Command" global flag is set. I promise to implement that once someone implements ntsd ;-)
svn path=/trunk/; revision=55311
2012-01-30 02:10:39 +00:00
Alex Ionescu 4e3bf71826 [RTL]: Document, define, implement, and export RtlSetThreadIsCritical.
svn path=/trunk/; revision=55310
2012-01-30 01:14:33 +00:00
Alex Ionescu 64cab88494 [SMLIB]: Add NT-compatible SmConnectToSm and SmExecPgm functions to smlib, which CSRSS and other subsystems can use to talk to SMSS (and SMSS when it talks to itself). Not yet used.
svn path=/trunk/; revision=55308
2012-01-30 00:12:38 +00:00
Thomas Faber 1aac8171b0 [COMCTL32]
- Fix MSVC build. Already sent upstream

svn path=/trunk/; revision=55306
2012-01-29 23:30:22 +00:00
Amine Khaldi 4d623fd547 [RICHED20]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55303
2012-01-29 23:23:23 +00:00
Amine Khaldi ed317865e3 [RASAPI32_WINETEST]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55301
2012-01-29 23:00:48 +00:00
Amine Khaldi 7dbc8a9586 [RASAPI32]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55300
2012-01-29 23:00:39 +00:00
Amine Khaldi 503dee91c9 [QUERY]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55298
2012-01-29 22:39:18 +00:00
Amine Khaldi 15fb0aecc1 [PSTOREC]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55297
2012-01-29 22:24:35 +00:00
Amine Khaldi 2d57ba7294 [PRINTUI]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55296
2012-01-29 21:39:30 +00:00
Amine Khaldi c43966f688 [WTSAPI32]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55295
2012-01-29 21:29:40 +00:00
Alex Ionescu bb0bb575b6 [SMSS]: Add a new header which precisely documents the SB and SM packet structure and protocol. These match the Server 2003 SP1 definitions and sizes and would allow a ReactOS SMSS to talk to a Windows CSRSS and vice-versa.
svn path=/trunk/; revision=55290
2012-01-29 17:16:01 +00:00
Giannis Adamopoulos 07155c928c [user32]
- don't use DbgPrint for error messages

svn path=/trunk/; revision=55289
2012-01-29 11:13:07 +00:00
Giannis Adamopoulos 2bf1a41895 [win32k]
- Show some error messages in case NtUserSystemParametersInfo fails

svn path=/trunk/; revision=55288
2012-01-29 10:32:59 +00:00
James Tabor 7b6ae5355e - uxtheme is forked.
svn path=/trunk/; revision=55287
2012-01-29 03:28:39 +00:00
Amine Khaldi 4252262d8b [ODBCCP32_WINETEST]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55286
2012-01-28 23:15:16 +00:00
Amine Khaldi 93e3e8cf84 [ODBCCP32]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55285
2012-01-28 23:15:03 +00:00
Amine Khaldi 9beddcf6f5 [MSIMTF]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55284
2012-01-28 22:42:14 +00:00
Amine Khaldi 34ad19014e [STDOLE32.TLB]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55283
2012-01-28 22:22:11 +00:00
Amine Khaldi f96ae418aa [NTDSAPI]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55282
2012-01-28 22:07:27 +00:00
Amine Khaldi 2b498df22f [STDOLE2.TLB]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55281
2012-01-28 21:08:43 +00:00
Amine Khaldi eaad3df7dc * Add mscoree winetest to the rbuild build too.
svn path=/trunk/; revision=55280
2012-01-28 21:04:16 +00:00
Eric Kohl 9b2103620b [EVENTLOG]
- Log files which are opened when the eventlog service is started are permanent files and will only be closed when the service is stopped. Other log files are closed when their handle is closed.
- Opening a non existing backup log file must fail.
- Opening an existing backup log files opens the file for reading only.

svn path=/trunk/; revision=55279
2012-01-28 20:15:41 +00:00
Amine Khaldi e1632d9cd8 [MSCOREE_WINETEST]
* Add mscoree winetest from Wine 1.3.37.

svn path=/trunk/; revision=55277
2012-01-28 17:34:42 +00:00
Amine Khaldi 53d0c6b010 [MSCOREE]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55276
2012-01-28 17:34:24 +00:00
Amine Khaldi 5f4ae9949c [WINEMP3.ACM]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55275
2012-01-28 17:21:07 +00:00
Amine Khaldi b20df12944 [MLANG_WINETEST]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55274
2012-01-28 17:12:03 +00:00
Amine Khaldi 97dfbce665 [MLANG]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55273
2012-01-28 17:11:55 +00:00
Amine Khaldi 1b4f459fcc [PSDK]
* Import cor.idl, cordebug.idl and metahost.idl from Wine.
* Remove the now unneeded cor.h.
* Update corerror.h, corhdr.h, mscoree.idl and winsxs.idl from Wine.
* Update the cmake and rbuild files to reflect the changes.

svn path=/trunk/; revision=55272
2012-01-28 11:58:18 +00:00
Amine Khaldi 140671d476 [NTPRINT_WINETEST]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55271
2012-01-28 10:29:55 +00:00
Amine Khaldi 2801c84858 [NTPRINT]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55270
2012-01-28 10:29:40 +00:00
Amine Khaldi a56d039edf [MSISIP]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55268
2012-01-27 23:08:50 +00:00
Amine Khaldi cea6972358 [OBJSEL]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55267
2012-01-27 22:24:01 +00:00
Amine Khaldi 6f45707947 [DDK]
* Update dmusicks.h annotations.

svn path=/trunk/; revision=55264
2012-01-27 21:27:13 +00:00
Thomas Faber d07efed2e7 [USP10]
- Fix MSVC build. Sent and applied upstream.

svn path=/trunk/; revision=55263
2012-01-27 21:20:03 +00:00
Amine Khaldi e70779e693 [SDK/UUID]
* Add atliface.idl for the MSVC build. Dedicated to Thomas.

svn path=/trunk/; revision=55262
2012-01-27 21:09:57 +00:00
Amine Khaldi 889ed6d338 [NDDEAPI]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55260
2012-01-27 20:21:06 +00:00
Amine Khaldi f6aa73bd07 [COMCTL32]
* Sync more of header.c with Wine 1.3.37. Fixes build.

svn path=/trunk/; revision=55259
2012-01-27 19:22:05 +00:00
Amine Khaldi 7d0b56b9e1 [MSTASK_WINETEST]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55258
2012-01-27 18:48:41 +00:00
Amine Khaldi 04c708b1b0 [MSTASK]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55257
2012-01-27 18:48:31 +00:00