17 #define CON_API_NOCONSOLE_IMPL(Name, TYPE, RequestName) \ 20 IN PCONSOLE_PROCESS_DATA ProcessData, \ 21 IN OUT PCSR_API_MESSAGE ApiMessage, \ 22 IN TYPE* RequestName, \ 23 IN OUT PCSR_REPLY_CODE ReplyCode OPTIONAL) 29 #define CON_API_NOCONSOLE_ENTRY(Name, TYPE, RequestName) \ 30 CON_API_NOCONSOLE_IMPL(Name, TYPE, RequestName); \ 33 TYPE* RequestName = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.RequestName; \ 34 PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process); \ 36 return Name##Impl(ProcessData, ApiMessage, RequestName, ReplyCode); \ 39 #define CON_API_NOCONSOLE(Name, TYPE, RequestName) \ 40 CON_API_NOCONSOLE_ENTRY(Name, TYPE, RequestName); \ 41 CON_API_NOCONSOLE_IMPL(Name, TYPE, RequestName) 45 #define CON_API_IMPL(Name, TYPE, RequestName) \ 48 IN PCONSOLE_PROCESS_DATA ProcessData, \ 49 IN PCONSRV_CONSOLE Console, \ 50 IN OUT PCSR_API_MESSAGE ApiMessage, \ 51 IN TYPE* RequestName, \ 52 IN OUT PCSR_REPLY_CODE ReplyCode OPTIONAL) 58 #define CON_API_ENTRY(Name, TYPE, RequestName) \ 59 CON_API_IMPL(Name, TYPE, RequestName); \ 63 TYPE* RequestName = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.RequestName; \ 64 PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process); \ 65 PCONSRV_CONSOLE Console; \ 67 Status = ConSrvGetConsole(ProcessData, \ 70 if (!NT_SUCCESS(Status)) \ 73 Status = Name##Impl(ProcessData, Console, \ 74 ApiMessage, RequestName, ReplyCode); \ 76 ConSrvReleaseConsole(Console, TRUE); \ 80 #define CON_API(Name, TYPE, RequestName) \ 81 CON_API_ENTRY(Name, TYPE, RequestName); \ 82 CON_API_IMPL(Name, TYPE, RequestName) 93 CSR_API(SrvGetConsoleAliasesLength);
94 CSR_API(SrvGetConsoleAliasExes);
95 CSR_API(SrvGetConsoleAliasExesLength);
101 CSR_API(SrvFlushConsoleInputBuffer);
102 CSR_API(SrvGetConsoleNumberOfInputEvents);
105 CSR_API(SrvInvalidateBitMapRect);
109 CSR_API(SrvWriteConsoleOutput);
110 CSR_API(SrvReadConsoleOutputString);
111 CSR_API(SrvWriteConsoleOutputString);
113 CSR_API(SrvGetConsoleCursorInfo);
114 CSR_API(SrvSetConsoleCursorInfo);
115 CSR_API(SrvSetConsoleCursorPosition);
116 CSR_API(SrvSetConsoleTextAttribute);
117 CSR_API(SrvCreateConsoleScreenBuffer);
118 CSR_API(SrvGetConsoleScreenBufferInfo);
119 CSR_API(SrvSetConsoleActiveScreenBuffer);
120 CSR_API(SrvSetConsoleScreenBufferSize);
121 CSR_API(SrvScrollConsoleScreenBuffer);
122 CSR_API(SrvSetConsoleWindowInfo);
134 CSR_API(SrvGetConsoleProcessList);
135 CSR_API(SrvGenerateConsoleCtrlEvent);
136 CSR_API(SrvConsoleNotifyLastClose);
138 CSR_API(SrvGetConsoleMouseInfo);
139 CSR_API(SrvSetConsoleKeyShortcuts);
140 CSR_API(SrvGetConsoleKeyboardLayoutName);
141 CSR_API(SrvGetConsoleCharType);
142 CSR_API(SrvSetConsoleLocalEUDC);
143 CSR_API(SrvSetConsoleCursorMode);
144 CSR_API(SrvGetConsoleCursorMode);
150 CSR_API(SrvGetConsoleHardwareState);
151 CSR_API(SrvSetConsoleHardwareState);
152 CSR_API(SrvGetConsoleDisplayMode);
153 CSR_API(SrvSetConsoleDisplayMode);
154 CSR_API(SrvGetLargestConsoleWindowSize);
157 CSR_API(SrvConsoleMenuControl);
158 CSR_API(SrvSetConsoleMenuClose);
165 OUT HDESK* ConsoleDesktop);
169 CSR_API(SrvGetConsoleSelectionInfo);
171 CSR_API(SrvGetConsoleNumberOfFonts);
172 CSR_API(SrvGetConsoleFontInfo);
173 CSR_API(SrvGetConsoleFontSize);
174 CSR_API(SrvGetConsoleCurrentFont);
180 CSR_API(SrvGetHandleInformation);
181 CSR_API(SrvSetHandleInformation);
183 CSR_API(SrvVerifyConsoleIoHandle);
186 CSR_API(SrvGetConsoleCommandHistory);
187 CSR_API(SrvGetConsoleCommandHistoryLength);
188 CSR_API(SrvExpungeConsoleCommandHistory);
189 CSR_API(SrvSetConsoleNumberOfCommands);
192 CSR_API(SrvSetConsoleCommandHistoryMode);
195 CSR_API(SrvRegisterConsoleVDM);
196 CSR_API(SrvVDMConsoleOperation);
197 CSR_API(SrvRegisterConsoleOS2);
198 CSR_API(SrvSetConsoleOS2OemFormat);
199 CSR_API(SrvRegisterConsoleIME);
200 CSR_API(SrvUnregisterConsoleIME);
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
CSR_API(BaseSrvCheckApplicationCompatibility)
NTSTATUS NTAPI GetThreadConsoleDesktop(IN ULONG_PTR ThreadId, OUT HDESK *ConsoleDesktop)