[CONSOLE.DLL]
[reactos.git] / win32ss / user / consrv / console.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: win32ss/user/consrv/console.h
5 * PURPOSE: Consoles Management
6 * PROGRAMMERS: Hermes Belusca-Maito
7 */
8
9 #pragma once
10
11 #define ConSrvLockConsoleListExclusive() \
12 RtlAcquireResourceExclusive(&ListLock, TRUE)
13
14 #define ConSrvLockConsoleListShared() \
15 RtlAcquireResourceShared(&ListLock, TRUE)
16
17 #define ConSrvUnlockConsoleList() \
18 RtlReleaseResource(&ListLock)
19
20 extern LIST_ENTRY ConsoleList;
21 extern RTL_RESOURCE ListLock;
22
23 #if 0
24 /*
25 * WARNING: Change the state of the console ONLY when the console is locked !
26 */
27 typedef enum _CONSOLE_STATE
28 {
29 CONSOLE_INITIALIZING, /* Console is initializing */
30 CONSOLE_RUNNING , /* Console running */
31 CONSOLE_TERMINATING , /* Console about to be destroyed (but still not) */
32 CONSOLE_IN_DESTRUCTION /* Console in destruction */
33 } CONSOLE_STATE, *PCONSOLE_STATE;
34 #endif
35
36
37 VOID WINAPI ConSrvInitConsoleSupport(VOID);
38 NTSTATUS WINAPI ConSrvInitConsole(OUT PCONSOLE* NewConsole,
39 IN OUT PCONSOLE_START_INFO ConsoleStartInfo,
40 IN PCSR_PROCESS ConsoleLeaderProcess);
41 VOID WINAPI ConSrvDeleteConsole(PCONSOLE Console);
42 BOOL FASTCALL ConSrvValidatePointer(PCONSOLE Console);
43 BOOL FASTCALL ConSrvValidateConsoleState(PCONSOLE Console,
44 CONSOLE_STATE ExpectedState);
45 BOOL FASTCALL ConSrvValidateConsoleUnsafe(PCONSOLE Console,
46 CONSOLE_STATE ExpectedState,
47 BOOL LockConsole);
48 BOOL FASTCALL ConSrvValidateConsole(PCONSOLE Console,
49 CONSOLE_STATE ExpectedState,
50 BOOL LockConsole);
51
52 /* EOF */