Commit graph

52263 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
60e03ccee8 [KERNEL32]
Deactivate the code of GetConsoleInputWaitHandle, because it calls a function that doesn't seem to appear in the console server apis listed in http://j00ru.vexillium.org/csrss_list/api_list.html (and that I haven't included in the console server apis list), until I find a better solution. It fixes compilation.

[CONSRV]
- Code reorganization
- Introduce the CONSOLE_CONNECTION_INFO structure needed for initializing consoles when launching a program (see http://svn.reactos.org/svn/reactos/trunk/reactos/lib/kernel32/misc/dllmain.c?r1=16826&r2=16825&pathrev=16826), instead of calling AllocConsole. Not used at this time.

Now the branch compiles.

svn path=/branches/ros-csrss/; revision=57749
2012-11-23 19:37:20 +00:00
Hermès Bélusca-Maïto
b942b837af [CSRSRV]
Remove the unneeded CsrpHandleConnectionRequest function since CsrApiHandleConnectionRequest does already the job.

svn path=/branches/ros-csrss/; revision=57744
2012-11-21 18:52:42 +00:00
Hermès Bélusca-Maïto
d7bac86452 [NTDLL]
When calling CsrClientConnectToServer with a valid connection info user buffer, after capturing the buffer and calling CsrClientCallServer, do not forget to copy back to the user buffer the updated connection info and to free the capture buffer !

svn path=/branches/ros-csrss/; revision=57743
2012-11-20 22:48:11 +00:00
Hermès Bélusca-Maïto
ae88c763da [CSRSRV]
- Remove unused functions CallHardError and CsrHandleHardError (in fact calling the hard error callback is already done in the listening thread).
- Add an annotation and correct a typographical error; remove old comments.
- Remove the now unneeded csrplugin.h header (a relic of the old callback system of the old csrss/csrsrv).

svn path=/branches/ros-csrss/; revision=57741
2012-11-20 19:34:03 +00:00
Hermès Bélusca-Maïto
90229a39a0 [KERNEL32/CONSRV]
- Merge IntWriteConsoleOutputCharacter and WriteConsoleOutputAttribute functions into IntWriteConsoleOutputCode helper functions, which is used inside WriteConsoleOutputAttribute and WriteConsoleOutputCharacterW/A.
- In server-side, merge CsrWriteConsoleOutputChar and CsrWriteConsoleOutputAttrib into the server API SrvWriteConsoleOutputString.
- The structures CSRSS_WRITE_CONSOLE_OUTPUT_CHAR and CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB are merged into CSRSS_WRITE_CONSOLE_OUTPUT_CODE.

[CONSRV]
- Add a CsrValidateMessageBuffer usage.

svn path=/branches/ros-csrss/; revision=57740
2012-11-19 23:26:36 +00:00
Hermès Bélusca-Maïto
5e77b6714d Forgot this part.
svn path=/branches/ros-csrss/; revision=57739
2012-11-19 21:52:59 +00:00
Hermès Bélusca-Maïto
ef1e1fc82b [KERNEL32/CONSRV]
- Modify the helper function IntWriteConsole to make it use of capture buffers for passing things to write.
- Now, the loop disappears.
- I moved the pause-event wait (introduced in revision r47359) inside consrv, and (concerning the server-api-part SrvWriteConsole), especially in the ConioWriteConsole function, to be sure that all functions calling ConioWriteConsole become sensible to pause event. This REALLY NEEDS testing (and of course the code needs cleaning of the introduced comments, when I'm sure it works).

svn path=/branches/ros-csrss/; revision=57738
2012-11-19 21:48:22 +00:00
Hermès Bélusca-Maïto
e71f1dd200 [KERNEL32/CONSRV]
- Merge IntFillConsoleOutputCharacter and FillConsoleOutputAttribute functions into IntFillConsoleOutputCode helper and make it used by FillConsoleOutputAttribute/CharacterW/A.
- In server-side, CsrFillOutputChar and CsrFillOutputAttrib are merged into SrvFillConsoleOutput.
- Merge CSRSS_FILL_OUTPUT and CSRSS_FILL_OUTPUT_ATTRIB structures into CSRSS_FILL_OUTPUT.

svn path=/branches/ros-csrss/; revision=57734
2012-11-18 17:06:48 +00:00
Hermès Bélusca-Maïto
e505499a2c [CONSRV]
CsrSetTextAttrib --> SrvSetConsoleTextAttribute and activate it in the list of APIs indices.

svn path=/branches/ros-csrss/; revision=57732
2012-11-18 14:30:25 +00:00
Hermès Bélusca-Maïto
f079b2b2b6 [CONSRV]
- Use the ConsoleGetPerProcessData macro (--> CONSOLE_PROCESS_DATA structure).
- Do not forget to leave a critical section if we fail.

svn path=/branches/ros-csrss/; revision=57731
2012-11-18 14:21:21 +00:00
Hermès Bélusca-Maïto
a4ef6acb0a [CONSRV]
Use the ConsoleGetPerProcessData macro (--> CONSOLE_PROCESS_DATA structure).

svn path=/branches/ros-csrss/; revision=57730
2012-11-18 14:17:47 +00:00
Hermès Bélusca-Maïto
4b04f7d488 [KERNEL32]
Use new structures and api indices namings.

[CONSRV]
Use CsrValidateMessageBuffer instead of Win32CsrValidateBuffer.

svn path=/branches/ros-csrss/; revision=57729
2012-11-18 13:54:32 +00:00
Hermès Bélusca-Maïto
feb045c64b [CONSRV]
Fix a DPRINT.

svn path=/branches/ros-csrss/; revision=57728
2012-11-18 13:16:58 +00:00
Hermès Bélusca-Maïto
de31fffea8 [KERNEL32/CONSRV]
- Use new structures and api indices namings (as usual).

[CONSRV]
- Merge CSRSS_SET_TITLE and CSRSS_GET_TITLE into CSRSS_CONSOLE_TITLE.
- Merge CSRSS_GET_CONSOLE_(OUTPUT_)CP and CSRSS_SET_CONSOLE_(OUTPUT_)CP into CSRSS_CONSOLE_CP.
- NtDuplicateObject(GetCurrentProcess(), ... ---> NtDuplicateObject(NtCurrentProcess(), ...
- Use CsrValidateMessageBuffer instead of Win32CsrValidateBuffer.
- Use CONSOLE_PROCESS_DATA structure.

TODO: Remove a DPRINT1 checkpoint in SrvAllocConsole after future tests are OK.

svn path=/branches/ros-csrss/; revision=57727
2012-11-18 13:10:03 +00:00
Hermès Bélusca-Maïto
3a0d4c3269 [KERNEL32]
- Add some NULL checks.
- Use new structures and api indices namings.

svn path=/branches/ros-csrss/; revision=57726
2012-11-17 23:45:14 +00:00
Hermès Bélusca-Maïto
1568822b7c [KERNEL32]
- Use new structures and api indices namings.

[CONSRV]
- CSRSS_SET_CURSOR ==> CSRSS_SET_CURSOR_POSITION for SrvSetConsoleCursorPosition.
- Merge CSRSS_GET_CURSOR_INFO and CSRSS_SET_CURSOR_INFO into CSRSS_CURSOR_INFO.

svn path=/branches/ros-csrss/; revision=57725
2012-11-17 23:29:53 +00:00
Hermès Bélusca-Maïto
56190eec33 [KERNEL32]
- Make some functions compliant with the new structures and server apis indices names.

[KERNEL32/CONSRV]
- Merge CSRSS_SET_CONSOLE_MODE and CSRSS_GET_CONSOLE_MODE into CSRSS_CONSOLE_MODE.
- Rename CSRSS_SETGET_CONSOLE_HW_STATE into CSRSS_CONSOLE_HW_STATE.

svn path=/branches/ros-csrss/; revision=57724
2012-11-17 23:07:59 +00:00
Hermès Bélusca-Maïto
dab294603f [KERNEL32/CONSRV]
- Make OpenConsole call only one server api, namely SrvOpenConsole, which was known before under the name CsrGetHandle (this latter function was removed in r57689 by error).
- Merge CSRSS_GET_INPUT_HANDLE and CSRSS_GET_OUTPUT_HANDLE structures into CSRSS_OPEN_CONSOLE (used by the functions named above).

[CONSRV]
- Add SrvOpenConsole (copied from CsrGetHandle), and add DPRINT1s to it.
- Load the localized string "Command Prompt" using the Server DLL's instance handle instead of calling GetModuleHandleW.
- Make use of CONSOLE_PROCESS_DATA structures.

svn path=/branches/ros-csrss/; revision=57723
2012-11-17 22:42:04 +00:00
Hermès Bélusca-Maïto
8a4c1b3d26 [CONSRV]
Reorganize the data members according to their purposes (increases the lisibility only). No code changes.

svn path=/branches/ros-csrss/; revision=57722
2012-11-17 22:05:41 +00:00
Hermès Bélusca-Maïto
2006c3bf86 [KERNEL32/CONSRV]
- Move the waiting loop of IntReadConsole into SrvReadConsole instead.
- Merge IntPeekConsoleInput and IntReadConsoleInput helpers into a single IntGetConsoleInput helper function
  and make PeekConsoleInputW/A and ReadConsoleInputW/A use it.
  Indeed, the "only" difference between these two functions, is that the first one keeps the data read inside
  the console input buffer, but on the contrary the second removes the data and does not return until at least
  one input record has been read.
  In server-side, CsrReadInputEvent and CsrPeekConsoleInput are merged into SrvGetConsoleInput. Merge the corresponding
  structures.
- Use shorter variable names in IntReadConsoleOutput and use CONSOLE_PROCESS_DATA structure in SrvReadConsoleOutput.
- Merge IntReadConsoleOutputCharacter and ReadConsoleOutputAttribute functions into a single IntReadConsoleOutputCode
  helper function, and make ReadConsoleOutputAttribute and ReadConsoleOutputCharacterW/A use it.
  In server-side, CsrReadConsoleOutputChar and CsrReadConsoleOutputAttrib are merged into SrvReadConsoleOutputString.
  (Remark: the SrvReadConsoleOutputString name comes from http://j00ru.vexillium.org/csrss_list/api_list.html and I
  checked that it was indeed the server function that was called by both ReadConsoleOutputAttribute and ReadConsoleOutputCharacter).
  The idea behind merging these two functions is, that an attribute or a character are instances of the same entity, namely
  a "code" (what would be called an (ANSI) escape sequence). Therefore I encode them inside the same CSRSS_READ_CONSOLE_OUTPUT_CODE
  structure and I use it with the previous functions.

[CONSRV]
- Make use of the CONSOLE_PROCESS_DATA structure (introduced in r57685).
- Use CsrValidateMessageBuffer instead of Win32CsrValidateBuffer.
- Reorganize conmsg.h a little bit.

svn path=/branches/ros-csrss/; revision=57721
2012-11-17 21:39:41 +00:00
Hermès Bélusca-Maïto
7e801b0929 [CONSRV]
Use CsrValidateMessageBuffer instead of Win32CsrValidateBuffer.

svn path=/branches/ros-csrss/; revision=57720
2012-11-17 20:05:52 +00:00
Hermès Bélusca-Maïto
ecb660bb7d [CONSRV]
Code reorganization only, no code changes.

svn path=/branches/ros-csrss/; revision=57717
2012-11-17 15:41:31 +00:00
Hermès Bélusca-Maïto
0bdd9a32b0 [KERNEL32/CONSRV]
Fix compilation.

svn path=/branches/ros-csrss/; revision=57715
2012-11-15 23:13:23 +00:00
Hermès Bélusca-Maïto
903d3cfb1c [KERNEL32/CONSRV]
- Use a standard win32 thread function for the ConsoleControlDispatcher thread, instead of a custom PCONTROLDISPATCHER one.
- Deactivate debug outputs in console.c, which were activated by error in r57706.

svn path=/branches/ros-csrss/; revision=57714
2012-11-15 23:06:49 +00:00
Hermès Bélusca-Maïto
0473031b87 [KERNEL32]
- Move console-related Vista+ functions from client/vista.c to a dedicated client/console/vista.c file, and add it to compilation.
- Move some helper functions from console.c to history.c.
- Use the new api index names in history.c.

[CONSRV]
- Merge CSRSS_GET_HISTORY_INFO and PCSRSS_SET_HISTORY_INFO structures declarations into CSRSS_HISTORY_INFO, and therefore use only one member of it inside CONSOLE_API_MESSAGE structure.
- WORD --> UINT for few structure members related to history information.

svn path=/branches/ros-csrss/; revision=57713
2012-11-15 22:34:44 +00:00
Hermès Bélusca-Maïto
1ccafa6cae [KERNEL32/CONSRV]
- Use capture buffers to pass (variable-length) strings to the console server.
- Merge the CSRSS_ADD_CONSOLE_ALIAS and CSRSS_GET_CONSOLE_ALIAS structures into a unique structure CSRSS_CONSOLE_ALIAS.

TODO: Check what happens to the "/ sizeof(WCHAR);" in GetConsoleAliasesW.

svn path=/branches/ros-csrss/; revision=57712
2012-11-15 21:02:01 +00:00
Hermès Bélusca-Maïto
d6b0ad349a [KERNEL32]
- Move all the read/write related functions to an appropriate source file and add it to compilation.
- Fix credits for alias.c

svn path=/branches/ros-csrss/; revision=57711
2012-11-15 18:06:17 +00:00
Hermès Bélusca-Maïto
c1f19d61c2 [KERNEL32]
Compile alias.c and history.c.

svn path=/branches/ros-csrss/; revision=57710
2012-11-15 17:13:53 +00:00
Hermès Bélusca-Maïto
a0dd01612e [KERNEL32]
- Move history-functions to a dedicated source file. The functions were created in r47580 and therefore update the description header of the file.

svn path=/branches/ros-csrss/; revision=57709
2012-11-15 17:09:51 +00:00
Hermès Bélusca-Maïto
c13acb3749 Fix header (no code changes).
svn path=/branches/ros-csrss/; revision=57708
2012-11-15 16:53:30 +00:00
Hermès Bélusca-Maïto
2ae258d08d [KERNEL32]
- Move alias-functions to a dedicated file. The names of the programmers were retrieved via svn information (see r32093 and r32118).

svn path=/branches/ros-csrss/; revision=57707
2012-11-15 16:51:29 +00:00
Hermès Bélusca-Maïto
66b2c326a5 [KERNEL32]
Fix some comments formatting.

svn path=/branches/ros-csrss/; revision=57706
2012-11-15 16:29:21 +00:00
Hermès Bélusca-Maïto
aa2347c408 [KERNEL32]
- Place console.c file in a dedicated directory because I will after split it into logical units (eg. a file for Alias-functions, a file for Read-write functions, etc...) to facilitate maintenance.

svn path=/branches/ros-csrss/; revision=57705
2012-11-15 16:24:43 +00:00
Hermès Bélusca-Maïto
6716529b84 [CSRSRV]
- Comments formatting.
- Correct a nasty initialization bug which unveiled itself as, eg., critical sections being already initialized in consoles, whereas we were creating new ones. It was because we didn't copy correctly per-process server data from parent process to child process. Now consoles initialize finely.

Now, only modifications to the console subsystem remain to make it totally conform to the new messaging structures of csrss (I mean, using the capture buffers).

svn path=/branches/ros-csrss/; revision=57703
2012-11-13 23:45:02 +00:00
Hermès Bélusca-Maïto
e03c8d5702 [CONSRV]
- Initialize the per-process structure size : fixes console initialization.

svn path=/branches/ros-csrss/; revision=57702
2012-11-13 21:11:30 +00:00
Hermès Bélusca-Maïto
bc0af6b272 [CSRSRV]
- Use a variable ServerDll instead of using each time CsrLoadedServerDll[i], as it is done in some other places.
- Clean the code (remove extra-parentheses).
- Zero-out the memory buffer allocated for CsrSrvSharedStaticServerData.

svn path=/branches/ros-csrss/; revision=57701
2012-11-13 21:08:19 +00:00
Hermès Bélusca-Maïto
cbc3e80b5a [BASESRV]
- Remove the unneeded CallProcessCreated function since the same functionality is programmed and executed in CSRSRV when CsrInsertProcess is called via a call of CsrCreateProcess.
- Remove some hacks in process creation.
- In BaseSrvExitProcess, use the 'Reply = 2' value instead of the old hack 'ApiMessage->ApiNumber = 0xBABE'.

[USER32/WINSRV]
- Make SetLogonNotifyWindow call our 'RosSetLogonNotifyWindow' hack and explicitely mark it as a hack.
- CsrSetLogonNotifyWindow --> RosSetLogonNotifyWindow to emphasize that it is a ReactOS-specific hack.

svn path=/branches/ros-csrss/; revision=57694
2012-11-09 23:39:45 +00:00
Hermès Bélusca-Maïto
f77f05cd9d Synchronize up to trunk's revision r57689.
svn path=/branches/ros-csrss/; revision=57690
2012-11-07 23:07:18 +00:00
Hermès Bélusca-Maïto
2970f8652b [CONSRV]
- Use the DLL instance for getting its win23 resources.
- Use the CONSOLE_PROCESS_DATA structure (see r57686) for accessing console-specific fields of the processes (instead of using them implemented in the CSR_PROCESS structure).
- Win32CsrDuplicateHandleTable --> ConsoleNewProcess since it's the callback function called when a new process is created, and start to move some hacks currently present in BaseSrvCreateProcess.

TODO: suppress the starting-application-related hacks in BaseSrvCreateProcess (in basesrv).

svn path=/branches/ros-csrss/; revision=57689
2012-11-07 22:23:36 +00:00
Hermès Bélusca-Maïto
b5dc23b4a0 [BASESRV]
- Comment some code and correct the DllMain prototype. No functional changes though.

svn path=/branches/ros-csrss/; revision=57688
2012-11-07 22:08:38 +00:00
Hermès Bélusca-Maïto
df87a091d1 [CONSRV]
Code formatting only.

svn path=/branches/ros-csrss/; revision=57687
2012-11-07 21:16:09 +00:00
Hermès Bélusca-Maïto
34086f2971 [CONSRV]
- Use the new PCONSOLE_PROCESS_DATA type instead of PCSR_PROCESS, for accessing console-specific fields inside a console structure (the code modifications inside these functions will follow in the next commits).
- Remove unneeded included header files in consrv.h.
- Use a DLL instance in order to facilitate the access to win32 resources.
- Activate the declaration of server apis (or rename existing ones to the Windows scheme from the http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3 list).
- Comment the Win32CsrValidateBuffer helper (because it should be replaced by the usage of CsrValidateMessageBuffer).
- Add the list of the old APIs (just for me, to remember at the end to check that I didn't forget ome of them during the process of moving / renaming).

svn path=/branches/ros-csrss/; revision=57686
2012-11-07 21:10:48 +00:00
Hermès Bélusca-Maïto
aa77ee7796 [CONSRV]
Add a new header containing per-process console-specific structure CSRSS_CON_PROCESS_DATA (it is stored inside one of the element of the ServerData array inside the CSR_PROCESS structure). It was deleted from csrsrv.h in revision r57673 and reappears here. Also add a macro in order to facilitate its access inside consrv.

svn path=/branches/ros-csrss/; revision=57685
2012-11-07 21:04:47 +00:00
Eric Kohl
20ec872b2f [NETAPI32]
NetLocalGroupEnum: Make sure that built-in aliases are retrieved once and only one alias is enumerated upon each consecutive call. Retrieve name and comment for each alias.

svn path=/trunk/; revision=57684
2012-11-07 18:51:38 +00:00
Eric Kohl
e2dd0a34a1 [SAMSRV]
Fix build.

svn path=/trunk/; revision=57683
2012-11-06 23:47:43 +00:00
Eric Kohl
0b38742a0c [SAMSRV]
SamrQueryInformationAlias: When retrieving general information, return a member count of zero if the members sub key does not exist.

svn path=/trunk/; revision=57682
2012-11-06 23:39:59 +00:00
Jérôme Gardou
26504938df [USER32_APITEST]
- Test behaviour with icons handle from foreign process

svn path=/trunk/; revision=57681
2012-11-06 14:27:03 +00:00
Jérôme Gardou
e8624870c3 [USER32]
- Link to msvcrtex in MSC builds

svn path=/trunk/; revision=57680
2012-11-05 23:29:52 +00:00
Jérôme Gardou
15deddd4ea [USER32]
- Avoid more rounding issues and hopefully fix MSC build

svn path=/trunk/; revision=57679
2012-11-05 22:51:32 +00:00
Eric Kohl
b49a25a363 [NETAPI32]
Start the implementation of NetpNtStatusToApiStatus and NetLocalGroupEnum.

svn path=/trunk/; revision=57678
2012-11-05 22:51:08 +00:00