Commit graph

54240 commits

Author SHA1 Message Date
Alex Ionescu ca5079dbc5 [BASESRV]: The last few APIs were off-by-one due to an unimplmented (in Windows) or deprecated api.c
[BASESRV]: Implement BaseSrvNlsCreateSection, which is needed by Windows kernel32.dll. Also implement the delay-loading functionality it needs.

svn path=/trunk/; revision=59879
2013-08-29 20:13:31 +00:00
Alex Ionescu b512a67763 [NLS]. Add NLS files.
svn path=/trunk/; revision=59878
2013-08-29 19:07:10 +00:00
Hermès Bélusca-Maïto 89a6f0d487 Formatting fix only.
svn path=/trunk/; revision=59877
2013-08-29 18:13:24 +00:00
Alex Ionescu a20cac9b5d moar failz
svn path=/trunk/; revision=59875
2013-08-29 17:46:26 +00:00
Alex Ionescu 8ed6af6f2a fix a dprint
svn path=/trunk/; revision=59874
2013-08-29 17:44:34 +00:00
Hermès Bélusca-Maïto 4a3ceaec30 Fix variable naming.
svn path=/trunk/; revision=59873
2013-08-29 17:40:21 +00:00
Alex Ionescu 93bba5bf09 [BASESRV]: Stubplement all the APIs so that our IDs match with Windows. Windows kernel32 now dies when calling NLSCreateSection.
svn path=/trunk/; revision=59872
2013-08-29 17:00:10 +00:00
Alex Ionescu b626c99f0b [KERNEL32]: Fix a bug in QueryActCtx
svn path=/trunk/; revision=59871
2013-08-29 16:42:14 +00:00
Hermès Bélusca-Maïto 95ea6a8d77 [KERNEL32]
Use GetSystemDirectoryW for building the path to console.dll

svn path=/trunk/; revision=59870
2013-08-29 14:31:06 +00:00
Hermès Bélusca-Maïto e3a5aaeb41 [KERNEL32]
Fix some headers information.
CORE-7421 #resolve #comment Fixed in revision r59869, thanks :)

svn path=/trunk/; revision=59869
2013-08-29 12:20:29 +00:00
Alex Ionescu 1bc5937959 CORE-6639 #resolve #time 1d #comment Guard pages now work ;-)
[NDK]: Fix definition of a global flag.
[RTL]: RtlpCreateUserStack: 1) If the image is invalid, bail out. 2) If the stack commit is higher than reserve, adjust reserve. 3) After allocating a guard page, the stack limit is now ABOVE the guard page, not BELOW it (stack grows backward!).
[RTL]: Remove the hack which always Commited the "StackReserve" value. Threads now have a 4-64KB stack, instead of a 1MB stack.
[NTOSKRNL]: Implement MiAccessCheck and MiCheckForUserStackOverflow, which handle guard page + stack expansion.
[USER32]: Because threads now correctly run with a smaller stack than usual (and expand as needed), remove some checks in user-mode callbacks which forced larger stacks.

svn path=/trunk/; revision=59868
2013-08-29 07:33:10 +00:00
Alex Ionescu b840c2367f [HIDPARSE]: Stop the HID debug spam.
svn path=/trunk/; revision=59867
2013-08-29 06:09:28 +00:00
Alex Ionescu 098160c171 [NDK]: Add some RTL_ACTIVATION_CONTEXT flags from the ASSERTs in the checked ntdll.dll. Guess some other ones based on what seems to be the naming pattern (can't find them on Google, so who knows).
[RTL]: Make the Wine RtlActivationContext* APIs use the native RTL flags, not the Win32 flags.
[KERNEL32]: Separate Wine-specific ActCtx code from NT-compatible ActCtx code, and reimplement the latter. Now all ActCtx APIs except CreateActCtx (which is a mess on Windows) are compatible with the real NT RtlActivationContext APIs in terms of flags.
[KERNEL32]: Fix the hacks which were sending Win32 flags to the NT Native Rtl* functions.

svn path=/trunk/; revision=59866
2013-08-29 04:34:00 +00:00
Alex Ionescu 34287c50dc [KERNEL32]: Implement BaseProcessInitPostImport. Windows NTDLL now loads much, much further, all the way to lsass.exe now.
svn path=/trunk/; revision=59865
2013-08-29 00:07:00 +00:00
Alex Ionescu 3be526a895 [NTDLL]: Fix CsrpConnectToServer to use the correct CSR_API_CONNECTINFO structure.
[CSRSRV]: Fix definition of CSR_API_CONNECTINFO structure. It is now compatible with Server 2003. Also, set the DebugFlag.

svn path=/trunk/; revision=59864
2013-08-29 00:02:15 +00:00
Amine Khaldi c29aaf5ec8 [WINHLP32]
* Improve resource files layout to make it consistent with the rest of our codebase. By Erdem Ersoy.
CORE-7414 #resolve #comment Committed in r59863. Thanks.

svn path=/trunk/; revision=59863
2013-08-28 23:14:41 +00:00
Alex Ionescu 0ba0d34b5c [NTDLL]: Don't give every process a KernelCallbackTable. Only GUI processes need one.
[USER32]: Initialize the KernelCallbackTable when loaded in GUI process. Also, store it statically instead of requiring a heap allocation (just like Windows).

svn path=/trunk/; revision=59862
2013-08-28 22:35:28 +00:00
Amine Khaldi 74053e9f52 [TRANSLATIONS]
* Turkish translation update and improvements by Erdem Ersoy.
CORE-7408 #resolve #comment Committed in r59861. Thanks.

svn path=/trunk/; revision=59861
2013-08-28 22:06:34 +00:00
Amine Khaldi e3f48f8607 [CMAKE/VS]
* Introduce the support for organizing the solution into a hierarchy of folders that matches our codebase layout.
* You can enable this feature by adding -DUSE_FOLDER_STRUCTURE=1 to your configure phase (the VSSolution one).
* Based on a patch by Yuntian Zhang with my improvements.
CORE-7412

svn path=/trunk/; revision=59860
2013-08-28 21:37:54 +00:00
Alex Ionescu bf493b93af [NDK]: Fix Vista vs Server 2003 definition of SECTION_IMAGE_INFORMATION.
[NTOSKRNL]: Gut out almost all the fields in the ReactOS-specific MM_IMAGE_SECTION, and replace them with the NT SECTION_IMAGE_INFORMATION structure instead. Make NtQuerySection simply return a copy of these fields (as on Windows).
[NTOSKRNL]: Update the PE loader code to now store information in SECTION_IMAGE_INFORMATION. Also store LoaderFlags and DllCharacteristics, which were not stored/returned to users before (in NtQuerySection).
[NTOSKRNL]: An entrypoint of NULL should also set ImageContainsCode to FALSE.
[NTOSKRNL]: Implement MmGetImageInformation, which is used by NtQueryInformationProcess(ProcessImageInformation). Also implement this latter info class.
[NTOSKRNL]: Delete ps_i.h, nobody uses this anymore.

svn path=/trunk/; revision=59859
2013-08-28 21:09:16 +00:00
Hermès Bélusca-Maïto 8453b44a7f Just fix a typo.
svn path=/trunk/; revision=59858
2013-08-28 20:12:35 +00:00
Alex Ionescu 4ca622a65d [RTL]: Correctly read PEB or Kernel Variables for Heap Tuning.
[NTOSKRNL]: MmCreatePeb should correctly fill out the Heap PEB parameters.
[NTOSKRNL]: MmInitSystem and mminit.c should correctly initialize and hold the Heap Tuning Parameters.
[NTOSKRNL]: CmControlVector should read the registry Heap Tuning Parameters into the real Mm variables, instaed of "Dummy".
This removes heap hacks and makes Windows NTDLL happy.

svn path=/trunk/; revision=59857
2013-08-28 18:57:29 +00:00
Hermès Bélusca-Maïto c268c87586 [KERNEL32]
- Add brackets around "case XXX:" so that I'm able to (un)fold regions of code when debugging and reading.
- Temporarily skip AppCompat functionality added by Alex, in order to "fix" (read: hack-fix) launch of .bat/.cmd files. Indeed, when .bat/.cmd files get started with the CreateProcess function, a call to NtCreateSection fails with status STATUS_INVALID_IMAGE_NOT_MZ, as expected (line 2952). But the new AppCompat code (lines 3028 and 3031-3033 and following, and 3114), executed whenever the status code from NtCreateSection is STATUS_SUCCESS or STATUS_INVALID_IMAGE_NOT_MZ or something else, overwrites the status code by other values, so that, after we return to the main code path (lines 3174 and following), the status code isn't STATUS_INVALID_IMAGE_NOT_MZ anymore but STATUS_SUCCESS or whatever, and then, we fail to run the .bat/.cmd file (that should be done at lines 3314-3316 and following).
To Alex_Ionescu: Have a look at this and fix it properly!!

svn path=/trunk/; revision=59855
2013-08-28 13:23:09 +00:00
Amine Khaldi 0a425e697c [CMAKE]
* Add the proper subsystem version when using a recent MSVC toolchain.

svn path=/trunk/; revision=59854
2013-08-28 12:32:09 +00:00
Amine Khaldi 94d5de635f [CRT]
* Annotate timeb_s.h.

svn path=/trunk/; revision=59853
2013-08-28 11:52:25 +00:00
Amine Khaldi 47a9785c7e [PSDK]
* Annotate imm.h.

svn path=/trunk/; revision=59852
2013-08-28 11:25:44 +00:00
Amine Khaldi 9aa6a42782 [SVCHOST]
* Fix a typo.

svn path=/trunk/; revision=59851
2013-08-28 11:08:28 +00:00
Hermès Bélusca-Maïto 13fa3680e5 [SVCHOST]
Fix debug prints.

svn path=/trunk/; revision=59850
2013-08-28 10:19:54 +00:00
Hermès Bélusca-Maïto b96d93332b [KERNEL32]
Cut a very loong DPRINT1 into pieces, to workaround the length limitation of debug strings I get.

svn path=/trunk/; revision=59849
2013-08-28 10:08:41 +00:00
Alex Ionescu 08dac57791 [SVCHOST]: Use ReactOS Linux-build compatible cases in the header files, which are incompatible with Windows, and don't even matter on Windows, but hey, <3 Reactos + Linux.
svn path=/trunk/; revision=59848
2013-08-28 08:34:41 +00:00
Alex Ionescu 3acd542293 [SVCHOST]: Implement a Windows-compatible (5.2 SP1) SvcHost.exe process, which can load Windows services according to the information at http://www.geoffchappell.com/studies/windows/win32/services/svchost/index.htm, using the same callbacks and registry settings, including support for RPC over NPIPE, NetBIOS and COM, with correct handling of Security, Threading, Locking and Stop Callbacks. Tested with the current BITS and DHCP services, which still work (although they don't take advantage of the new functionality).
svn path=/trunk/; revision=59847
2013-08-28 08:32:27 +00:00
Alex Ionescu bbf30d28f7 It wants an EOF?
svn path=/trunk/; revision=59846
2013-08-28 07:42:09 +00:00
Alex Ionescu 7e7db0b831 [UUID]: Add IID_IGlobalOptions and CLSID_GlobalOptions.
svn path=/trunk/; revision=59845
2013-08-28 07:39:58 +00:00
Alex Ionescu a66ef80e54 [IDL]: Sync Objidl with http://www.winehq.org/pipermail/wine-patches/2012-November/120299.html, which adds IGlobalOptions.
svn path=/trunk/; revision=59844
2013-08-28 07:15:12 +00:00
Alex Ionescu d78172a8cd [ADVAPI32/SERVICES]: Windows services (as per MSDN and testing) must always get at least one parameter -- the service name, in the argument vector. However, in ReactOS, unless optional custom parameters were sent (when starting a service), services got 0 parameters and a NULL argument vector. Since services on Windows know this is impossible, many dereference the vector without checking for NULL (including Windows Svchost.exe). Either way, it's bogus for us not ever sending the name as the first parameter. So I fixed ScBuildUnicodeArgsVector to always either pre-pend the service name (if the caller gave us some parameters already), or do use the name as the sole parameter (if the caller sent none). This now works as on Windows, and should greately help with 3rd party service compatibility.
***NOTE THAT I ONLY DID THIS FOR UNICODE. I DID NOT BOTHER TO FIX THE ANSI VERSION. ERIC KOHL, PLEASE REVIEW & FIX AS APPROPRIATE***

svn path=/trunk/; revision=59843
2013-08-28 05:04:36 +00:00
Eric Kohl 05f3a7e599 [ADVAPI32]
GetSidSubAuthority and GetSidSubAuthorityCount: Set last error code to ERROR_SUCCESS before calling the Rtl function.

svn path=/trunk/; revision=59842
2013-08-27 20:58:29 +00:00
Amine Khaldi d317c64bae [COM_APITEST]
* Fix build.

svn path=/trunk/; revision=59841
2013-08-27 19:16:41 +00:00
Alex Ionescu 37fb2862f3 [PSDK]: Add a bunch of missing RTL_ macros.
svn path=/trunk/; revision=59840
2013-08-27 18:28:47 +00:00
Amine Khaldi 003dacb551 [KERNEL32]
* Check more parameters in MultiByteToWideChar() and WideCharToMultibyte(). By Marcus Boillat.
* Fixes 4 kernel32:codepage tests.
CORE-7411 #resolve #comment Committed in r59839 with formatting fixes. Thanks.

svn path=/trunk/; revision=59839
2013-08-26 21:36:16 +00:00
Alex Ionescu 08c5f648ed [SACDRV]: Implement DoCrashCommand.
[SACDRV]: Cleanups and fixes. You can now use "Shutdown", "crashdump" and "restart" in the !SAC and the commands work as expected.
[SACDRV]: Implement GetTListInfo and DoTlistCommand. PrintTListInfo is next to actually show the output.

svn path=/trunk/; revision=59838
2013-08-26 19:45:16 +00:00
Hermès Bélusca-Maïto 12796b070e [BOOTDATA]
[CMD]
The default command prompt is $p$g. But still keep the information line by setting a system environment variable "PROMPT" set to $i$p$g. Therefore, if you are tired of it, either remove the environement variable or redefine it to whatever you want. In a current command-line session, to restore the default command prompt, enter "prompt" without any other parameter.

svn path=/trunk/; revision=59837
2013-08-26 18:35:29 +00:00
Amine Khaldi 77377b7e9b [PSDK]
* Annotate winsplp.h.

svn path=/trunk/; revision=59836
2013-08-26 14:14:47 +00:00
Amine Khaldi 758ca8be1d [MMC]
* Fix MSVC build.

svn path=/trunk/; revision=59835
2013-08-26 14:10:59 +00:00
Hermès Bélusca-Maïto fb760d1e93 [HELP]
Fix a typo.

svn path=/trunk/; revision=59834
2013-08-26 13:19:31 +00:00
Hermès Bélusca-Maïto d19d23f8aa [CMD]
Remove the help resources moved to the help utility.
@ gigaherz (a.k.a. David Quintana): Don't worry! Your changes to fr-FR.rc were already moved to help.exe in the previous commit :D

svn path=/trunk/; revision=59833
2013-08-26 13:12:46 +00:00
Hermès Bélusca-Maïto 51e2a35e96 [CMD-HELP]
Add a help.exe utility to replace the old built-in command "help" in cmd.exe (i.e. do it the Win2k3 way).
This way, if somebody runs a personalized command-line environment which provides its own help command, one can use the personalized help command and not the standard one (e.g. the "help" command of RosBE).

Adapted by myself from a patch by Lee Schroeder.
CORE-5701 #resolve #comment Committed in revision 59832, thanks :) I use a trick to be able to compile the utility (use: ninja cmd_help) because doing "ninja help" has a signification in ninja (signaled by AmineKhaldi).

svn path=/trunk/; revision=59832
2013-08-26 12:45:34 +00:00
Alex Ionescu fc47517694 [SACDRV]: SAC expects its memory allocations to be zeroed out.
[SACMSG]: Re-commit the .mc file with CRLF endings, this is essential for correct output.
[SACDRV]: Fix bug in VTUTF8ChannelAnsiDispatch (freeing stack memory with pool API).
[SACDRV]: Fix the way in which the cell buffer was being computed. This way works (tm) and is also much easier to read.
[SACDRV]: Fix bug in VTUTF8ChannelIRead (incorrect char vs byte sizing).
VT-UTF8 output and input works now in the !SAC channel. There's still some lurking bugs, however, such as when hitting the 24th row (probably an off-by-one memcpy).

svn path=/trunk/; revision=59831
2013-08-26 10:40:31 +00:00
Alex Ionescu 368ae5f2ec [SACDRV]: Implement VTUTF8ChannelProcessAttributes and VTUTF8ChannelOFlush, since these are also needed for output. Time to test for real now.
svn path=/trunk/; revision=59830
2013-08-26 08:12:52 +00:00
Alex Ionescu 30f0e5cc98 [SACDRV]: Switch !SAC back to VT-UTF8 and remove the previous hacks.
[SACDRV]: We need VTUTF8ChannelOEcho. Implement VTUTF8ChannelAnsiDispatch in anticipation.

svn path=/trunk/; revision=59829
2013-08-26 07:16:10 +00:00
Alex Ionescu aa7497361a [SACDRV]: Implement VTUTF8ChannelOWrite2. Time to try out the !SAC on VT-UTF8 mode now.
svn path=/trunk/; revision=59828
2013-08-26 06:25:41 +00:00