3 #define DECLARE_RETURN(type) type _ret_
4 #define RETURN(value) { _ret_ = value; goto _cleanup_; }
5 #define CLEANUP /*unreachable*/ ASSERT(FALSE); _cleanup_
6 #define END_CLEANUP return _ret_;
9 #define UserEnterCo UserEnterExclusive
10 #define UserLeaveCo UserLeave
12 extern PSERVERINFO gpsi
;
13 extern PTHREADINFO gptiCurrent
;
14 extern PPROCESSINFO gppiList
;
15 extern PPROCESSINFO ppiScrnSaver
;
16 extern PPROCESSINFO gppiInputProvider
;
17 extern BOOL g_AlwaysDisplayVersion
;
18 extern ATOM gaGuiConsoleWndClass
;
19 extern ATOM AtomDDETrack
;
22 INIT_FUNCTION NTSTATUS NTAPI
InitUserImpl(VOID
);
23 VOID FASTCALL
CleanupUserImpl(VOID
);
24 VOID FASTCALL
UserEnterShared(VOID
);
25 VOID FASTCALL
UserEnterExclusive(VOID
);
26 VOID FASTCALL
UserLeave(VOID
);
27 BOOL FASTCALL
UserIsEntered(VOID
);
28 BOOL FASTCALL
UserIsEnteredExclusive(VOID
);
29 DWORD FASTCALL
UserGetLanguageToggle(VOID
);
31 _Success_(return != FALSE
)
35 _In_z_ PCWSTR pwszKeyName
,
36 _In_z_ PCWSTR pwszValueName
,
38 _Out_writes_bytes_(cjDataSize
) _When_(ulType
== REG_SZ
, _Post_z_
) PVOID pvData
,
39 _In_ ULONG cjDataSize
);
41 _Success_(return != FALSE
)
45 _In_z_ PCWSTR pwszKeyName
,
46 _In_z_ PCWSTR pwszValueName
,
48 _In_reads_bytes_(cjDataSize
) const VOID
*pvData
,
49 _In_ ULONG cjDataSize
);