Reorder closing of handles (the service handle then the SCM handle), it clarifies the logic (but not change it dramatically).
[RSYM64]
Correct a misspelling, no code change.
svn path=/trunk/; revision=58488
Disable enqueuing processes into the SessionGlobal->ProcessList, since it's broken and causes non paged pool corruption. The reason is that sometimes the process is not removed, so a dead allocation stays in the list, causing havoc, when the next or previous process in that list is removed.
svn path=/trunk/; revision=58487
- Implement "!pool" kdbg extension that works like in WinDbg
- Implement ExpCheckPoolAllocation to check a single allocation for sanity
- Rename MEMORY_ARE::PageOpCount (which is unused) to Magic and set it to 'MAre'
- Implement MiRosCheckMemoryAreas, that checks all memory areas for integrity and PspCheckProcessList that checks the process list. The code is not used anywhere, since it can cause a major performance impact, but it proved useful to detect non paged pool corruptions. So I'll commit it in the hope that it will be useful.
svn path=/trunk/; revision=58485
Implement the usage of the STARTF_TITLEISLINKNAME flag (in a STARTUPINFO structure, it signals that the program was started from a shell link, and therefore its lpTitle member holds the path of the link).
What I do is that, in CShellLink::InvokeCommand (called when a shortcut is being executed), I initialize the SHELLEXECUTEINFO structure such that we know that we are starting from a shortcut (use the
SEE_MASK_HASLINKNAME flag), and to hold the path to the flag I use its lpClass member (which is not used for other things in this code path). Then the whole thing is passed to ShellExecuteExW which, in turn,
calls the SHELL_ExecuteW function. This function reads the SHELLEXECUTEINFO structure and, if it has the flag SEE_MASK_HASLINKNAME (or SEE_MASK_HASTITLE too, if somebody also uses lpClass to pass a particular
title for the startup), we use the forementioned lpClass member, holding the link path, as the title (lpTitle member) of a new STARTUPINFO object used when calling CreateProcess (and thus, launching the
new application). So that this application will be aware that she was launched via a link (therefore we become compliant with the STARTF_TITLEISLINKNAME documentation).
svn path=/branches/ros-csrss/; revision=58480
- Define all the missing STARTF_* flags needed for the STARTUPINFO structure (taken from http://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspx).
Amongst them is the STARTF_TITLEISLINKNAME flag that I use in the console server to determine whether a console app was started from a shell link, and if so, extract
the name of the link and its icon.
- Define all the missing SEE_MASK_* flags needed for the SHELLEXECUTEINFO structure, but the Windows 8 flag (taken from http://msdn.microsoft.com/en-us/library/windows/desktop/bb759784(v=vs.85).aspx).
Furthermore I add three undocumented flags, SEE_MASK_HASLINKNAME, SEE_MASK_HASTITLE and SEE_MASK_FLAG_SEPVDM. These three flags are undocumented and even not present in the official Windows SDK.
However they are used in shobjidl.idl to define some CMIC_MASK_* flags, these ones being mentioned in the MSDN documentation of the CMINVOKECOMMANDINFOEX structure (see http://msdn.microsoft.com/en-us/library/windows/desktop/bb773217(v=vs.85).aspx).
So I affect them a range of values which seems to be strangely empty (see the code). Of course their values may differ from the real ones, however I have no way of discovering them. If somebody else
can verify them, it would be great.
svn path=/branches/ros-csrss/; revision=58479
- Implement SamIConnect.
- Add a trusted caller flag to the database object type and inherit it to opened or created sub objects.
- Restrict access to SamrQueryInformationUser.UserInternal1Information for non-trusted callers.
svn path=/trunk/; revision=58472
Clarify few parts of code; remove unneeded comments and DPRINTs; start documentation of the CsrCreateProcess routine.
[BASESRV-CONSRV-WINSRV]
Correct the sizes of the API tables.
[SM]
Correct the API names.
svn path=/branches/ros-csrss/; revision=58464
Attempt to fix terminal window positioning at initialization. Some work also needs to be done in console.dll.
svn path=/branches/ros-csrss/; revision=58463
In LsapCreateDatabaseObjects pass the pointer AuditEventsInfo to LsapSetObjectAttribute instead a pointer to the pointer. Fixes 1 advapi32::lsa winetest when compiled with the new BE.
svn path=/trunk/; revision=58461
- Implement LSA dispatch routines LsapAllocateClientBuffer, LsapFreeClientBuffer, LsapCopyToClientBuffer and LsapCopyFromClientBuffer.
- LsapCallAuthenticationPackage and LsapLogonUser: Copy data from the callers address space into a local buffer and pass it to the authentication package.
svn path=/trunk/; revision=58457
No need to check ApiMessage.Status if you also check the returned value of CsrClientCallServer because, according to dll/ntdll/csr/connect.c:CsrClientCallServer, the (only) return value of CsrClientCallServer _is_ equal to ApiMessage.Status (vide line 169).
svn path=/branches/ros-csrss/; revision=58456
Remove the old implementation of GetConsoleInputWaitHandle which was commented-out for some time.
[BASESRV]
Correct few names.
svn path=/branches/ros-csrss/; revision=58454
Fix CsrCaptureTimeout (verified against Windows Server 2003).
[KERNEL32-CSRSRV-BASESRV-CONSRV-WINSRV]
Clean the code: remove unuseful comments and dprints, reorganize a little bit few source files.
svn path=/branches/ros-csrss/; revision=58453
- Move LsapLookupAuthenticationPackage, LsapCallAuthenticationPackage and LsapLogonUser from authport.c to authpackage.c.
- Make LsapCallAuthenticationPackage and LsapLogonUser call the matching authentication package functions.
svn path=/trunk/; revision=58451
Fix the initialization of screen buffers (concerning the cursor size).
[KERNEL32]
Fix almost all of the console winetests. Only 26 tests remain to be fixed, concerning principally WriteConsoleInputA/W and GetNumberOfConsoleInputEvents.
svn path=/branches/ros-csrss/; revision=58448
- Start to sort out things that depends only of the internals of a console, and things which are only related to "terminal emulators". Do it especially for (what I will call starting from now) the "GUI terminal emulator".
- Temporarily deactivate starting "TUI terminals".
- Temporarily break report that the terminal window is held by the current running console application in it (see r58107). This will be fixed later on.
svn path=/branches/ros-csrss/; revision=58447
* Fix some format specifiers (part 2 of r58442). Thanks Amine :)
* Remane two "global" static variables to avoid name collision warnings.
svn path=/trunk/; revision=58443