mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 05:22:57 +00:00
[WIN32K]
- Add/fix some annotations - Simplify code in NtGdiSetMiterLimit svn path=/trunk/; revision=57944
This commit is contained in:
parent
2a61a8dcec
commit
020d337ca6
8 changed files with 68 additions and 35 deletions
|
@ -2385,6 +2385,7 @@ NtGdiGetDeviceCaps(
|
||||||
_In_ HDC hdc,
|
_In_ HDC hdc,
|
||||||
_In_ INT i);
|
_In_ INT i);
|
||||||
|
|
||||||
|
_Success_(return!=FALSE)
|
||||||
W32KAPI
|
W32KAPI
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
|
|
|
@ -519,7 +519,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
|
||||||
//#define _Deref_pre_maybenull_
|
//#define _Deref_pre_maybenull_
|
||||||
//#define _Deref_pre_notnull_
|
//#define _Deref_pre_notnull_
|
||||||
//#define _Deref_pre_null_
|
//#define _Deref_pre_null_
|
||||||
//#define _Deref_pre_opt_bytecap_(size)
|
#define _Deref_pre_opt_bytecap_(size) _SAL11_Name(_Pre_opt_bytecap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))])
|
||||||
//#define _Deref_pre_opt_bytecap_c_(size)
|
//#define _Deref_pre_opt_bytecap_c_(size)
|
||||||
//#define _Deref_pre_opt_bytecap_x_(size)
|
//#define _Deref_pre_opt_bytecap_x_(size)
|
||||||
//#define _Deref_pre_opt_bytecount_(size)
|
//#define _Deref_pre_opt_bytecount_(size)
|
||||||
|
|
|
@ -472,7 +472,7 @@ leave:
|
||||||
PPDEVOBJ
|
PPDEVOBJ
|
||||||
NTAPI
|
NTAPI
|
||||||
EngpGetPDEV(
|
EngpGetPDEV(
|
||||||
PUNICODE_STRING pustrDeviceName)
|
_In_ PUNICODE_STRING pustrDeviceName)
|
||||||
{
|
{
|
||||||
UNICODE_STRING ustrCurrent;
|
UNICODE_STRING ustrCurrent;
|
||||||
PPDEVOBJ ppdev;
|
PPDEVOBJ ppdev;
|
||||||
|
@ -775,7 +775,7 @@ NtGdiGetDeviceCaps(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_Success_(return!=FALSE)
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtGdiGetDeviceCapsAll(
|
NtGdiGetDeviceCapsAll(
|
||||||
|
|
|
@ -160,22 +160,24 @@ extern PPDEVOBJ gppdevPrimary;
|
||||||
|
|
||||||
PPDEVOBJ
|
PPDEVOBJ
|
||||||
NTAPI
|
NTAPI
|
||||||
EngpGetPDEV(PUNICODE_STRING pustrDevice);
|
EngpGetPDEV(
|
||||||
|
_In_ PUNICODE_STRING pustrDevice);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
PDEVOBJ_vRelease(PPDEVOBJ ppdev);
|
PDEVOBJ_vRelease(
|
||||||
|
_Inout_ PPDEVOBJ ppdev);
|
||||||
|
|
||||||
PSURFACE
|
PSURFACE
|
||||||
NTAPI
|
NTAPI
|
||||||
PDEVOBJ_pSurface(
|
PDEVOBJ_pSurface(
|
||||||
PPDEVOBJ ppdev);
|
_In_ PPDEVOBJ ppdev);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
PDEVOBJ_vGetDeviceCaps(
|
PDEVOBJ_vGetDeviceCaps(
|
||||||
PPDEVOBJ ppdev,
|
_In_ PPDEVOBJ ppdev,
|
||||||
PDEVCAPS pDevCaps);
|
_Out_ PDEVCAPS pDevCaps);
|
||||||
|
|
||||||
INIT_FUNCTION
|
INIT_FUNCTION
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
@ -184,6 +186,8 @@ InitPDEVImpl(VOID);
|
||||||
|
|
||||||
PSIZEL
|
PSIZEL
|
||||||
FASTCALL
|
FASTCALL
|
||||||
PDEVOBJ_sizl(PPDEVOBJ, PSIZEL);
|
PDEVOBJ_sizl(
|
||||||
|
_In_ PPDEVOBJ ppdev,
|
||||||
|
_In_ PSIZEL psizl);
|
||||||
|
|
||||||
#endif /* !__WIN32K_PDEVOBJ_H */
|
#endif /* !__WIN32K_PDEVOBJ_H */
|
||||||
|
|
|
@ -9,7 +9,12 @@
|
||||||
|
|
||||||
struct _EXLATEOBJ;
|
struct _EXLATEOBJ;
|
||||||
|
|
||||||
typedef ULONG (FASTCALL *PFN_XLATE)(struct _EXLATEOBJ *pexlo, ULONG iColor);
|
_Function_class_(FN_XLATE)
|
||||||
|
typedef
|
||||||
|
ULONG
|
||||||
|
(FASTCALL *PFN_XLATE)(
|
||||||
|
_In_ struct _EXLATEOBJ *pexlo,
|
||||||
|
_In_ ULONG iColor);
|
||||||
|
|
||||||
typedef struct _EXLATEOBJ
|
typedef struct _EXLATEOBJ
|
||||||
{
|
{
|
||||||
|
@ -38,23 +43,51 @@ typedef struct _EXLATEOBJ
|
||||||
};
|
};
|
||||||
} EXLATEOBJ, *PEXLATEOBJ;
|
} EXLATEOBJ, *PEXLATEOBJ;
|
||||||
|
|
||||||
|
extern EXLATEOBJ gexloTrivial;
|
||||||
|
|
||||||
|
_Notnull_
|
||||||
PFN_XLATE
|
PFN_XLATE
|
||||||
FORCEINLINE
|
FORCEINLINE
|
||||||
XLATEOBJ_pfnXlate(XLATEOBJ *pxlo)
|
XLATEOBJ_pfnXlate(
|
||||||
|
_In_ XLATEOBJ *pxlo)
|
||||||
{
|
{
|
||||||
return ((PEXLATEOBJ)pxlo)->pfnXlate;
|
return ((PEXLATEOBJ)pxlo)->pfnXlate;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern EXLATEOBJ gexloTrivial;
|
VOID
|
||||||
|
NTAPI
|
||||||
|
EXLATEOBJ_vInitialize(
|
||||||
|
_Out_ PEXLATEOBJ pexlo,
|
||||||
|
_In_ PPALETTE ppalSrc,
|
||||||
|
_In_ PPALETTE ppalDst,
|
||||||
|
_In_ COLORREF crSrcBackColor,
|
||||||
|
_In_ COLORREF crDstBackColor,
|
||||||
|
_In_ COLORREF crDstForeColor);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
EXLATEOBJ_vInitXlateFromDCs(
|
||||||
|
_Out_ PEXLATEOBJ pexlo,
|
||||||
|
_In_ PDC pdcSrc,
|
||||||
|
_In_ PDC pdcDst);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
EXLATEOBJ_vInitSrcMonoXlate(
|
||||||
|
_Out_ PEXLATEOBJ pexlo,
|
||||||
|
_In_ PPALETTE ppalDst,
|
||||||
|
_In_ COLORREF crBackgroundClr,
|
||||||
|
_In_ COLORREF crForegroundClr);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
EXLATEOBJ_vCleanup(
|
||||||
|
_Inout_ PEXLATEOBJ pexlo);
|
||||||
|
|
||||||
|
_Always_(_Post_satisfies_(return==iColor))
|
||||||
ULONG
|
ULONG
|
||||||
FASTCALL
|
FASTCALL
|
||||||
EXLATEOBJ_iXlateTrivial(PEXLATEOBJ pexlo, ULONG iColor);
|
EXLATEOBJ_iXlateTrivial(
|
||||||
|
_In_ PEXLATEOBJ pexlo,
|
||||||
|
_In_ ULONG iColor);
|
||||||
|
|
||||||
void
|
|
||||||
DbgCmpXlate(XLATEOBJ *pxlo1, XLATEOBJ *pxlo2);
|
|
||||||
|
|
||||||
VOID NTAPI EXLATEOBJ_vInitialize(PEXLATEOBJ pexlo, PPALETTE ppalSrc, PPALETTE ppalDst, ULONG, ULONG, ULONG);
|
|
||||||
VOID NTAPI EXLATEOBJ_vInitXlateFromDCs(PEXLATEOBJ pexlo, PDC pdcSrc, PDC pdcDst);
|
|
||||||
VOID NTAPI EXLATEOBJ_vInitSrcMonoXlate(PEXLATEOBJ pexlo, PPALETTE ppalDst, ULONG Color0, ULONG Color1);
|
|
||||||
VOID NTAPI EXLATEOBJ_vCleanup(PEXLATEOBJ pexlo);
|
|
||||||
|
|
|
@ -355,7 +355,8 @@ NtGdiGetDCDword(
|
||||||
return Ret;
|
return Ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL _Success_(return != FALSE)
|
_Success_(return != FALSE)
|
||||||
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtGdiGetAndSetDCDword(
|
NtGdiGetAndSetDCDword(
|
||||||
_In_ HDC hdc,
|
_In_ HDC hdc,
|
||||||
|
|
|
@ -540,7 +540,8 @@ NtGdiPolyDraw(
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOL _Success_(return != FALSE)
|
_Success_(return != FALSE)
|
||||||
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtGdiMoveTo(
|
NtGdiMoveTo(
|
||||||
IN HDC hdc,
|
IN HDC hdc,
|
||||||
|
|
|
@ -2585,7 +2585,7 @@ NtGdiSetMiterLimit(
|
||||||
{
|
{
|
||||||
DC *pDc;
|
DC *pDc;
|
||||||
gxf_long worker, worker1;
|
gxf_long worker, worker1;
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
BOOL bResult = TRUE;
|
||||||
|
|
||||||
if (!(pDc = DC_LockDc(hdc)))
|
if (!(pDc = DC_LockDc(hdc)))
|
||||||
{
|
{
|
||||||
|
@ -2601,26 +2601,19 @@ NtGdiSetMiterLimit(
|
||||||
{
|
{
|
||||||
_SEH2_TRY
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
ProbeForWrite(pdwOut,
|
ProbeForWrite(pdwOut, sizeof(DWORD), 1);
|
||||||
sizeof(DWORD),
|
|
||||||
1);
|
|
||||||
*pdwOut = worker1.l;
|
*pdwOut = worker1.l;
|
||||||
}
|
}
|
||||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
Status = _SEH2_GetExceptionCode();
|
SetLastNtError(_SEH2_GetExceptionCode());
|
||||||
|
bResult = FALSE;
|
||||||
}
|
}
|
||||||
_SEH2_END;
|
_SEH2_END;
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
SetLastNtError(Status);
|
|
||||||
DC_UnlockDc(pDc);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DC_UnlockDc(pDc);
|
DC_UnlockDc(pDc);
|
||||||
return TRUE;
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue