- Implement NtUserResolveDesktop, which opens a desktop and a window station based on a desktop path string (format: "WinSta\Desktop").
- Move NtUserConsoleControl to a more suitable file, and implement the control code that allows CSRSS to assign console input threads to given desktops.
- Simplify a bit the code in NtUserSetInformationThread.
[CONSRV]
Turn the console input thread to a real one. There should be one such thread per desktop. When a console process is started, we open the desktop on which the process is going to start, we create a new input thread (attach it to the desktop) if needed, or reuse the existing one, and then we open the terminal on the correct desktop.
CORE-9346 #resolve #comment Fixed in revision 66662.
svn path=/trunk/; revision=66662
Don't set Message->DispatchingListEntry.Flink to NULL / compare against NULL, but use InitializeListHead and IsListEmpty. Make sure the list entry is properly initialize, when the item is removed Fixes list corruption.
svn path=/trunk/; revision=66661
- kernelspecs.h: Add IRQL level defines, remove a duplicate annotation and make some definitions more consistent
- concurrencysal.h: Add missing annotations (only dummies so far)
- driverspecs.h: Add some missing annotations
- sal_old.h: remove __inner_callback, which is in sal.h
svn path=/trunk/; revision=66654
Fix annotations for _dupenv_s and _wdupenv_s (They are broken in MS headers, looks like nobody uses attributes for SAL...)
svn path=/trunk/; revision=66653
Annotate mouse.c, move some prototypes to the proper location.
Fix bugs in EngSetPointerShape and IntEngSetPointerShape, where the passed in XLATEOBJ could be NULL. Found by MSVC static analyzer.
svn path=/trunk/; revision=66649
- Annotate eng/device.c and semaphor.c.
- Get rid of IntGdiAcquire/ReleaseSemaphore
- Move some prototypes where they belong
svn path=/trunk/; revision=66647
Fix all MSVC static analyzer warnings. (a few are suppressed after checking that it's ok)
Fixes a number of missing or wrong function return checks, wrong printf format specifiers and a few other things,
svn path=/trunk/; revision=66646
Move __analysis_assume to sal.h (like in newer Windows SDKs) and define it (together with _Analysis_assume_) to "((void)0)" instead of to nothing, to allow it to be used with a comma.
svn path=/trunk/; revision=66643
- Make NT_ASSERT() give the MSVC static analyzer a hint that the condition can now be excpected to be true. This adds __analysis_unreachable(), which uses __assume(0) on _PREFAST_ builds. This is neccessary, since it seems impossible to make MSVC respect __analysis_noreturn / __declspec(noreturn) on an intrinsic prototype like __int2c().
svn path=/trunk/; revision=66642
Update ntgdi.h:
- Change some return types from VOID to NTSTATUS. This was done recently on Windows, but there shouldn't be a compatibility issue with returning an NTSTATUS value instead of the random contents of the eax register.
- Change 2 parameters from VOID* to DRIVER_INFO_2W* and 2 parameters from VOID* to POINTL*
- Add annotations
svn path=/trunk/; revision=66641
- Pass size in bytes to UnsafeSetBitmapBits from NtGdiCreateBitmap
- In NtGdiSetBitmapBits check for stock bitmap and non-API bitmap.
svn path=/trunk/; revision=66616
- Remove wrong flags when initializing a DC
- Set DC::prgnattr before potentially passing it to the cleanup function after failure to create a handle. Add a comment that this is not actually enough. Will be fixed, once we use C++
- Increase GDI object stack levels to 20
svn path=/trunk/; revision=66615