- 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
Make sure a region is reasonably initialized, before potentially passing it to the cleanup function, when failing to create a handle.
svn path=/trunk/; revision=66614
NtGdiSetDIBitsToDeviceInternal: Check for ScanLines == 0 and clean up exit pathes. Fixes assertion failure in gdi32_winetest:bitmap
svn path=/trunk/; revision=66612
- Pass bitmap buffer size to SURFACE_AllocSurface and validate it
- Fix arithmetic overflow checks by using RtlULongMult
- GreExtTextOutW: do not allocate / blit zero sized bitmaps
- NtGdiStretchDIBitsInternal: do not pass negative y size to GreCreateBitmapEx
- DIB_CreateDIBSection: use calculated bitmap size, instead of biSizeImage when calculating the section view size and as size parameter to GreCreateBitmapEx
CORE-9245 #resolve
svn path=/trunk/; revision=66611
- revert an "improvement" in NtUserFindExistingCursorIcon
- Remove boken asserts
- Implement GreSetBitmapOwner and use it to set bitmap owner in IntSetCursorData
- Fix cleanup after failure in setting bitmap owner
- Fix string cleanup (don't free INTRESOURCE)
- Validate frame indices to be within range
- Make sure frame indices and JIR reates are copied
- A few other fixes/improvements
svn path=/trunk/; revision=66608