xref: /reactos/win32ss/user/ntuser/ntuser.h (revision 533d877a)
1 #pragma once
2 
3 #define UserEnterCo UserEnterExclusive
4 #define UserLeaveCo UserLeave
5 
6 typedef VOID (*TL_FN_FREE)(PVOID);
7 
8 /* Thread Lock structure */
9 typedef struct _TL
10 {
11     struct _TL* next;
12     PVOID pobj;
13     TL_FN_FREE pfnFree;
14 } TL, *PTL;
15 
16 extern PSERVERINFO gpsi;
17 extern PTHREADINFO gptiCurrent;
18 extern PPROCESSINFO gppiList;
19 extern PPROCESSINFO ppiScrnSaver;
20 extern PPROCESSINFO gppiInputProvider;
21 extern BOOL g_AlwaysDisplayVersion;
22 extern ATOM gaGuiConsoleWndClass;
23 extern ATOM AtomDDETrack;
24 extern ATOM AtomQOS;
25 extern ATOM AtomImeLevel;
26 extern ERESOURCE UserLock;
27 
28 CODE_SEG("INIT") NTSTATUS NTAPI InitUserImpl(VOID);
29 VOID FASTCALL CleanupUserImpl(VOID);
30 VOID FASTCALL UserEnterShared(VOID);
31 VOID FASTCALL UserEnterExclusive(VOID);
32 VOID FASTCALL UserLeave(VOID);
33 BOOL FASTCALL UserIsEntered(VOID);
34 BOOL FASTCALL UserIsEnteredExclusive(VOID);
35 DWORD FASTCALL UserGetLanguageToggle(_In_ LPCWSTR pszType, _In_ DWORD dwDefaultValue);
36 
37 _Success_(return != FALSE)
38 BOOL
39 NTAPI
40 RegReadUserSetting(
41     _In_z_ PCWSTR pwszKeyName,
42     _In_z_ PCWSTR pwszValueName,
43     _In_ ULONG ulType,
44     _Out_writes_bytes_(cjDataSize) _When_(ulType == REG_SZ, _Post_z_) PVOID pvData,
45     _In_ ULONG cjDataSize);
46 
47 _Success_(return != FALSE)
48 BOOL
49 NTAPI
50 RegWriteUserSetting(
51     _In_z_ PCWSTR pwszKeyName,
52     _In_z_ PCWSTR pwszValueName,
53     _In_ ULONG ulType,
54     _In_reads_bytes_(cjDataSize) const VOID *pvData,
55     _In_ ULONG cjDataSize);
56 
57 PGRAPHICS_DEVICE
58 NTAPI
59 InitDisplayDriver(
60     IN PWSTR pwszDeviceName,
61     IN PWSTR pwszRegKey);
62 
63 /* EOF */
64