Synchronize up to trunk's revision r57756.
[reactos.git] / win32ss / user / consrv / consrv.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: win32ss/user/consrv/consrv.h
5 * PURPOSE: Main header - Definitions
6 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
7 */
8
9 #ifndef __CONSRV_H__
10 #define __CONSRV_H__
11
12 #pragma once
13
14 /* PSDK/NDK Headers */
15 #define WIN32_NO_STATUS
16 #include <windows.h>
17 #define NTOS_MODE_USER
18 #include <ndk/ntndk.h>
19
20 /* CSRSS Header */
21 #include <csr/csrsrv.h>
22
23 /* CONSOLE Headers */
24 #include <win/console.h>
25 #include <win/conmsg.h>
26
27 #include "resource.h"
28
29 /* Shared header with console.dll */
30 #include "console.h"
31
32
33 extern HINSTANCE ConSrvDllInstance;
34 extern HANDLE ConSrvHeap;
35 // extern HANDLE BaseSrvSharedHeap;
36 // extern PBASE_STATIC_SERVER_DATA BaseStaticServerData;
37
38
39
40 typedef struct Object_tt
41 {
42 LONG Type;
43 struct tagCSRSS_CONSOLE *Console;
44 LONG AccessRead, AccessWrite;
45 LONG ExclusiveRead, ExclusiveWrite;
46 LONG HandleCount;
47 } Object_t;
48
49
50 typedef struct _CSRSS_HANDLE
51 {
52 Object_t *Object;
53 DWORD Access;
54 BOOL Inheritable;
55 DWORD ShareMode;
56 } CSRSS_HANDLE, *PCSRSS_HANDLE;
57
58
59
60 /* alias.c */
61 CSR_API(SrvAddConsoleAlias);
62 CSR_API(SrvGetConsoleAlias);
63 CSR_API(SrvGetConsoleAliases);
64 CSR_API(SrvGetConsoleAliasesLength);
65 CSR_API(SrvGetConsoleAliasExes);
66 CSR_API(SrvGetConsoleAliasExesLength);
67
68 /* coninput.c */
69 CSR_API(SrvGetConsoleInput);
70 CSR_API(SrvWriteConsoleInput);
71 CSR_API(SrvReadConsole);
72 CSR_API(SrvFlushConsoleInputBuffer);
73 CSR_API(SrvGetConsoleNumberOfInputEvents);
74
75 /* conoutput.c */
76 CSR_API(SrvReadConsoleOutput);
77 CSR_API(SrvWriteConsoleOutput);
78 CSR_API(SrvReadConsoleOutputString);
79 CSR_API(SrvWriteConsoleOutputString);
80 CSR_API(SrvFillConsoleOutput);
81 CSR_API(SrvWriteConsole);
82 CSR_API(SrvSetConsoleCursorPosition);
83 CSR_API(SrvGetConsoleCursorInfo);
84 CSR_API(SrvSetConsoleCursorInfo);
85 CSR_API(SrvSetConsoleTextAttribute);
86 CSR_API(SrvCreateConsoleScreenBuffer);
87 CSR_API(SrvGetConsoleScreenBufferInfo);
88 CSR_API(SrvSetConsoleActiveScreenBuffer);
89 CSR_API(SrvScrollConsoleScreenBuffer);
90 CSR_API(SrvSetConsoleScreenBufferSize);
91
92 /* console.c */
93 CSR_API(SrvOpenConsole);
94 CSR_API(SrvAllocConsole);
95 CSR_API(SrvFreeConsole);
96 CSR_API(SrvSetConsoleMode);
97 CSR_API(SrvGetConsoleMode);
98 CSR_API(SrvSetConsoleTitle);
99 CSR_API(SrvGetConsoleTitle);
100 CSR_API(SrvGetConsoleHardwareState);
101 CSR_API(SrvSetConsoleHardwareState);
102 CSR_API(SrvGetConsoleWindow);
103 CSR_API(SrvSetConsoleIcon);
104 CSR_API(SrvGetConsoleCP);
105 CSR_API(SrvSetConsoleCP);
106 CSR_API(SrvGetConsoleProcessList);
107 CSR_API(SrvGenerateConsoleCtrlEvent);
108 CSR_API(SrvGetConsoleSelectionInfo);
109
110 /* handle.c */
111 CSR_API(SrvCloseHandle);
112 CSR_API(SrvVerifyConsoleIoHandle);
113 CSR_API(SrvDuplicateHandle);
114 CSR_API(CsrGetInputWaitHandle);
115
116 NTSTATUS NTAPI ConsoleNewProcess(PCSR_PROCESS SourceProcess,
117 PCSR_PROCESS TargetProcess);
118 VOID NTAPI Win32CsrReleaseConsole(PCSR_PROCESS Process);
119
120 NTSTATUS FASTCALL Win32CsrInsertObject(PCONSOLE_PROCESS_DATA ProcessData,
121 PHANDLE Handle,
122 Object_t *Object,
123 DWORD Access,
124 BOOL Inheritable,
125 DWORD ShareMode);
126 NTSTATUS FASTCALL Win32CsrLockObject(PCONSOLE_PROCESS_DATA ProcessData,
127 HANDLE Handle,
128 Object_t **Object,
129 DWORD Access,
130 LONG Type);
131 VOID FASTCALL Win32CsrUnlockObject(Object_t *Object);
132 NTSTATUS FASTCALL Win32CsrReleaseObject(PCONSOLE_PROCESS_DATA ProcessData,
133 HANDLE Handle);
134
135 /* lineinput.c */
136 CSR_API(SrvGetConsoleCommandHistoryLength);
137 CSR_API(SrvGetConsoleCommandHistory);
138 CSR_API(SrvExpungeConsoleCommandHistory);
139 CSR_API(SrvSetConsoleNumberOfCommands);
140 CSR_API(SrvGetConsoleHistory);
141 CSR_API(SrvSetConsoleHistory);
142
143 /* server.c */
144 #if 0
145 BOOL FASTCALL Win32CsrValidateBuffer(PCSR_PROCESS ProcessData,
146 PVOID Buffer,
147 SIZE_T NumElements,
148 SIZE_T ElementSize);
149 #endif
150
151 #endif // __CONSRV_H__
152
153 /* EOF */