- Correct a misspelling 'CsrThreadAltertable' -> 'CsrThreadAlertable'.
- Introduce CSR_REPLY_CODEs instead of using hardcoded values, and use them with CSR_API_ROUTINE-type functions. They correspond to which decision CSRSRV should take after a server function is called: answer to the client or not, and perform according tasks.
[BASESRV]
Use CSR_REPLY_CODEs.
svn path=/branches/ros-csrss/; revision=57801
- Fix object deletion.
- Add a registry wrapper function that enables us to delete registry keys which have already been opened.
- Make LsarDelete call LsarDeleteObject because otherwise object deletion would not be possible.
svn path=/trunk/; revision=57784
Fixes COM port debugging output with Virtual PC 2007. See r57781 for more details.
CORE-4247 #comment Fixed also in r57782.
svn path=/trunk/; revision=57782
- Use cportlib for COM port facilities. Fixes COM port debugging output with Virtual PC 2007.
- Remove now unneeded header file.
CORE-4247 #comment Fixed in r57776, r57777, r57780 and r57781. #resolve
svn path=/trunk/; revision=57781
GetByte --> Wait for data (with timeout) and get it if available.
PollByte --> Check for data, get it if available, and return immediately.
svn path=/trunk/; revision=57780
- Make use of the previously committed cportlib code. This works great on VPC 2007 :)
- Comment the unused Rs232PortPollByte function.
- In hardware.c, add useful comments and two macros holding the maximum number of COM and LPT ports.
svn path=/trunk/; revision=57777
- Do a synthesis of all the code I've found concerning initializing COM ports (in kdcom / kddll / kdbg in the kernel and in freeldr). The "// Windows" comments concern the original code for testing the existence of COM ports, inside cportlib, whereas "// ReactOS" comments concern the equivalent existing in our kdcom/kddll/kdbg etc...
- CORRECT THE VIRTUAL PC COM PORT INITIALIZATION !! The problem was, that the current COM port existence test fails on VPC whereas it works well in all other virtual machines. Therefore :
* I keep the existing testing code in a function called ComPortTest1, this works everywhere but on VPC ;
* I add a very basic COM port existence test function called ComPortTest2, which basically looks for the scratch register, this works everywhere including on VPC.
* The COM port existence test consists in the two tests above.
svn path=/trunk/; revision=57776
- Implement LsarDeleteObject.
- Store the object name in the database object in order to be able to delete the objects key later.
svn path=/trunk/; revision=57769
- Add enumeration of user rights to LsarEnumerateAccountRights.
- Use RPC_UNICODE_STRING instead of UNICODE_STRING in the privilege lookup code.
svn path=/trunk/; revision=57767
- (Re-)implement acquiring/releasing driver-loading and unloading privilege (Note: the two privileges have the same name SE_LOAD_DRIVER_NAME).
- Rework the SCM initialization code. In particular, acquiring the starting lock MUST BE done BEFORE starting the RPC server, otherwise, a program can try to start a service (and during this operation, the global start lock is acquired by the SCM) DURING the initialization of SCM, and in particular between the call to ScmStartRpcServer and ScmAcquireServiceStartLock. The SCM would then see an already-acquired start lock at this point and would fail to initialize. ==> This commit corrects this behaviour.
svn path=/trunk/; revision=57754
When filling LoadOptions, strip the '/' commutator symbol in front of each option. Now we fully comply with Windows when holding LoaderBlock->LoadOptions, and the content of the registry value SystemStartOptions under HKLM\CurrentControlSet\Control display the options without their / symbol.
[WIN32K]
Now, the SystemStartOptions value doesn't contain / anymore.
svn path=/trunk/; revision=57752
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
I think this history deserves champagne and forceful warning comments, which have been added.
Simple solution: Don't blindly sync Wine code!
#resolve #CORE-6495
svn path=/trunk/; revision=57747
Remove the unneeded CsrpHandleConnectionRequest function since CsrApiHandleConnectionRequest does already the job.
svn path=/branches/ros-csrss/; revision=57744
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
- 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
- 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
- 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