40#define EXENAME_LENGTH (255 + 1)
63 DPRINT(
"Ctrl-Break Event\n");
67 DPRINT(
"Ctrl Close Event\n");
71 DPRINT(
"Ctrl Last Close Event\n");
75 DPRINT(
"Ctrl Logoff Event\n");
79 DPRINT(
"Ctrl Shutdown Event\n");
97 DPRINT1(
"Console Dispatcher Active: %lx %lx\n", CodeAndFlag, nCode);
177 DPRINT(
"Skipping system/service apps\n");
189 nExitCode = CodeAndFlag;
349 ULONG DeviceNameInfo;
358 if (DeviceNameInfo != 0)
360 ConsoleName = (
LPCWSTR)((
ULONG_PTR)ConsoleName + ((DeviceNameInfo >> 16) & 0xFFFF));
405 MenuControlRequest->
CmdIdLow = dwCmdIdLow;
406 MenuControlRequest->
CmdIdHigh = dwCmdIdHigh;
412 sizeof(*MenuControlRequest));
425 DWORD dwDesiredAccess,
449 sizeof(*DuplicateHandleRequest));
472 GetHandleInfoRequest->
Handle = hHandle;
477 sizeof(*GetHandleInfoRequest));
484 *lpdwFlags = GetHandleInfoRequest->
Flags;
503 SetHandleInfoRequest->
Handle = hHandle;
504 SetHandleInfoRequest->
Mask = dwMask;
510 sizeof(*SetHandleInfoRequest));
531 if (lpModeFlags ==
NULL)
542 sizeof(*GetDisplayModeRequest));
573 GetFontInfoRequest->
NumFonts = nFontCount;
576 if (CaptureBuffer ==
NULL)
578 DPRINT1(
"CsrAllocateCaptureBuffer failed!\n");
590 sizeof(*GetFontInfoRequest));
603 return GetFontInfoRequest->
NumFonts;
627 sizeof(*GetFontSizeRequest));
634 return GetFontSizeRequest->
FontSize;
664 sizeof(*HardwareStateRequest));
708 sizeof(*GetCurrentFontRequest));
715 lpConsoleCurrentFont->dwFontSize = GetCurrentFontRequest->
FontSize;
716 lpConsoleCurrentFont->nFont = GetCurrentFontRequest->
FontIndex;
739 sizeof(*GetNumFontsRequest));
746 return GetNumFontsRequest->
NumFonts;
770 InvalidateDIBitsRequest->
Region = *lpRect;
775 sizeof(*InvalidateDIBitsRequest));
792 DWORD dwDesiredAccess,
825 OpenConsoleRequest->
ShareMode = dwShareMode;
830 sizeof(*OpenConsoleRequest));
837 return OpenConsoleRequest->
Handle;
861 sizeof(*SetCursorRequest));
879 PCOORD lpNewScreenBufferDimensions)
894 sizeof(*SetDisplayModeRequest));
901 if (lpNewScreenBufferDimensions)
902 *lpNewScreenBufferDimensions = SetDisplayModeRequest->
NewSBDim;
928 sizeof(*SetFontRequest));
961 sizeof(*HardwareStateRequest));
983 DPRINT1(
"SetConsoleKeyShortcuts(0x%x, 0x%x, 0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1, Unknown2,
Unknown3);
999 DPRINT1(
"SetConsoleMaximumWindowSize(0x%p, {%d, %d}) does nothing\n",
1000 hConsoleOutput, dwMaximumSize.
X, dwMaximumSize.
Y);
1022 sizeof(*SetMenuCloseRequest));
1051 SetPaletteRequest->
Usage = dwUsage;
1056 sizeof(*SetPaletteRequest));
1081 ShowCursorRequest->
Show = bShow;
1087 sizeof(*ShowCursorRequest));
1089 return ShowCursorRequest->
RefCount;
1116 VerifyHandleRequest->
Handle = hIoHandle;
1125 sizeof(*VerifyHandleRequest));
1132 return VerifyHandleRequest->
IsValid;
1148 CloseHandleRequest->
Handle = hHandle;
1153 sizeof(*CloseHandleRequest));
1258 DWORD DesktopLength,
1262 DWORD AppNameLength,
1282 if (CaptureBuffer ==
NULL)
1321 sizeof(*AllocConsoleRequest));
1382 DPRINT1(
"AllocConsole: Allocating a console to a process already having one\n");
1395 DPRINT(
"ConsoleTitle = '%S' - Desktop = '%S'\n",
1405 DPRINT(
"CurDir = '%S' - AppName = '%S'\n",
1454 if (ConsoleHandle ==
NULL)
1468 sizeof(*FreeConsoleRequest));
1502 if (lpConsoleScreenBufferInfo ==
NULL)
1509 ScreenBufferInfoRequest->
OutputHandle = hConsoleOutput;
1514 sizeof(*ScreenBufferInfoRequest));
1541 COORD dwCursorPosition)
1547 SetCursorPositionRequest->
OutputHandle = hConsoleOutput;
1548 SetCursorPositionRequest->
Position = dwCursorPosition;
1553 sizeof(*SetCursorPositionRequest));
1582 ConsoleModeRequest->
Handle = hConsoleHandle;
1587 sizeof(*ConsoleModeRequest));
1594 *lpMode = ConsoleModeRequest->
Mode;
1613 ConsoleModeRequest->
Handle = hConsoleHandle;
1614 ConsoleModeRequest->
Mode = dwMode;
1619 sizeof(*ConsoleModeRequest));
1642 GetNumInputEventsRequest->
InputHandle = hConsoleInput;
1648 sizeof(*GetNumInputEventsRequest));
1655 if (lpNumberOfEvents ==
NULL)
1679 GetLargestWindowSizeRequest->
OutputHandle = hConsoleOutput;
1680 GetLargestWindowSizeRequest->
Size.
X = 0;
1681 GetLargestWindowSizeRequest->
Size.
Y = 0;
1686 sizeof(*GetLargestWindowSizeRequest));
1692 DPRINT(
"GetLargestConsoleWindowSize, X = %d, Y = %d\n", GetLargestWindowSizeRequest->
Size.
X, GetLargestWindowSizeRequest->
Size.
Y);
1693 return GetLargestWindowSizeRequest->
Size;
1708 if (!lpConsoleCursorInfo)
1710 if (!hConsoleOutput)
1724 sizeof(*CursorInfoRequest));
1731 *lpConsoleCursorInfo = CursorInfoRequest->
Info;
1750 CursorInfoRequest->
Info = *lpConsoleCursorInfo;
1755 sizeof(*CursorInfoRequest));
1781 sizeof(*GetMouseInfoRequest));
1788 *lpNumberOfMouseButtons = GetMouseInfoRequest->
NumButtons;
1810 sizeof(*SetScreenBufferRequest));
1833 FlushInputBufferRequest->
InputHandle = hConsoleInput;
1838 sizeof(*FlushInputBufferRequest));
1862 SetScreenBufferSizeRequest->
OutputHandle = hConsoleOutput;
1868 sizeof(*SetScreenBufferSizeRequest));
1884 COORD dwDestinationOrigin,
1892 ScrollScreenBufferRequest->
OutputHandle = hConsoleOutput;
1895 if (lpClipRectangle !=
NULL)
1898 ScrollScreenBufferRequest->
ClipRectangle = *lpClipRectangle;
1906 ScrollScreenBufferRequest->
Fill = *lpFill;
1907 ScrollScreenBufferRequest->
Unicode = bUnicode;
1912 sizeof(*ScrollScreenBufferRequest));
1932 COORD dwDestinationOrigin,
1938 dwDestinationOrigin,
1953 COORD dwDestinationOrigin,
1959 dwDestinationOrigin,
1977 if (lpConsoleWindow ==
NULL)
1985 SetWindowInfoRequest->
Absolute = bAbsolute;
1986 SetWindowInfoRequest->
WindowRect = *lpConsoleWindow;
1991 sizeof(*SetWindowInfoRequest));
2016 SetTextAttribRequest->
Attributes = wAttributes;
2021 sizeof(*SetTextAttribRequest));
2049 if (NewCtrlHandlers ==
NULL)
2133 DWORD dwProcessGroupId)
2145 GenerateCtrlEventRequest->
CtrlEvent = dwCtrlEvent;
2151 sizeof(*GenerateCtrlEventRequest));
2169 if (dwNumChars == 0)
return 0;
2172 TitleRequest->
Length = dwNumChars * (bUnicode ?
sizeof(
WCHAR) :
sizeof(
CHAR));
2173 TitleRequest->
Unicode = bUnicode;
2176 if (CaptureBuffer ==
NULL)
2178 DPRINT1(
"CsrAllocateCaptureBuffer failed!\n");
2190 sizeof(*TitleRequest));
2198 dwNumChars = TitleRequest->
Length / (bUnicode ?
sizeof(
WCHAR) :
sizeof(
CHAR));
2249 ULONG NumChars = (
ULONG)(lpConsoleTitle ? (bUnicode ?
wcslen(lpConsoleTitle) :
strlen(lpConsoleTitle)) : 0);
2252 TitleRequest->
Length = NumChars * (bUnicode ?
sizeof(
WCHAR) :
sizeof(
CHAR));
2253 TitleRequest->
Unicode = bUnicode;
2256 if (CaptureBuffer ==
NULL)
2258 DPRINT1(
"CsrAllocateCaptureBuffer failed!\n");
2264 (
PVOID)lpConsoleTitle,
2271 sizeof(*TitleRequest));
2317 LPVOID lpScreenBufferData)
2335 (lpSecurityAttributes ? lpSecurityAttributes->bInheritHandle :
FALSE);
2336 CreateScreenBufferRequest->
ShareMode = dwShareMode;
2350 if (CaptureBuffer ==
NULL)
2365 sizeof(*CreateScreenBufferRequest));
2377 GraphicsBufferInfo->
hMutex = CreateScreenBufferRequest->
hMutex ;
2403 sizeof(*GetConsoleCPRequest));
2410 return GetConsoleCPRequest->
CodePage;
2427 SetConsoleCPRequest->
CodePage = wCodePageID;
2434 sizeof(*SetConsoleCPRequest));
2463 sizeof(*GetConsoleCPRequest));
2470 return GetConsoleCPRequest->
CodePage;
2487 SetConsoleCPRequest->
CodePage = wCodePageID;
2494 sizeof(*SetConsoleCPRequest));
2514 DWORD dwProcessCount)
2519 ULONG nProcesses = 0;
2521 if (lpdwProcessList ==
NULL || dwProcessCount == 0)
2528 if (CaptureBuffer ==
NULL)
2530 DPRINT1(
"CsrAllocateCaptureBuffer failed!\n");
2539 dwProcessCount *
sizeof(
DWORD),
2545 sizeof(*GetProcessListRequest));
2553 if (dwProcessCount >= nProcesses)
2574 if (lpConsoleSelectionInfo ==
NULL)
2585 sizeof(*GetSelectionInfoRequest));
2592 *lpConsoleSelectionInfo = GetSelectionInfoRequest->
Info;
2620 if (CaptureBuffer ==
NULL)
2635 sizeof(*AttachConsoleRequest));
2686 DPRINT1(
"AttachConsole: Attaching a console to a process already having one\n");
2739 sizeof(*GetWindowRequest));
2767 sizeof(*SetIconRequest));
2832#ifdef USE_TEB_STATIC_USTR
2838#ifndef USE_TEB_STATIC_USTR
2842#ifdef USE_TEB_STATIC_USTR
2861#ifndef USE_TEB_STATIC_USTR
2867#ifdef USE_TEB_STATIC_USTR
2883#ifdef USE_TEB_STATIC_USTR
2972 return ExeLength + 1;
3045 if (!cbDesktop || !pDesktop)
3047 pDesktop =
NtCurrentPeb()->ProcessParameters->DesktopInfo.Buffer;
3048 cbDesktop =
NtCurrentPeb()->ProcessParameters->DesktopInfo.Length;
3083 if (pdwAttachToThreadId)
3135 pdwAttachToThreadId);
3183 sizeof(*LangIdRequest));
3203 DPRINT1(
"SetTEBLangID: Could not set thread locale to console lang ID %lu\n",
3218 GetKbdLayoutNameRequest->
Ansi = bAnsi;
3224 sizeof(*GetKbdLayoutNameRequest));
3294 sizeof(*NotifyLastCloseRequest));
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
ACPI_SIZE strlen(const char *String)
BOOL WINAPI SetConsoleOutputCP(IN UINT wCodepage)
BOOL WINAPI FlushConsoleInputBuffer(IN HANDLE hConsoleInput)
BOOL WINAPI SetConsoleCursorPosition(IN HANDLE hConsoleOutput, IN COORD dwCursorPosition)
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
BOOL WINAPI AllocConsole(VOID)
BOOL WINAPI FreeConsole(VOID)
BOOL WINAPI SetConsoleTextAttribute(IN HANDLE hConsoleOutput, IN WORD wAttributes)
BOOL WINAPI SetConsoleCursorInfo(IN HANDLE hConsoleOutput, IN const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo)
BOOL WINAPI AttachConsole(IN DWORD dwProcessId)
BOOL WINAPI GetConsoleScreenBufferInfo(IN HANDLE hConsoleOutput, OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo)
WCHAR CurrentDirectory[1024]
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
@ ConsolepSetCursorPosition
@ ConsolepGetHardwareState
@ ConsolepSetActiveScreenBuffer
@ ConsolepDuplicateHandle
@ ConsolepUnregisterConsoleIME
@ ConsolepGetHandleInformation
@ ConsolepInvalidateBitMapRect
@ ConsolepCreateScreenBuffer
@ ConsolepGenerateCtrlEvent
@ ConsolepGetSelectionInfo
@ ConsolepRegisterConsoleIME
@ ConsolepFlushInputBuffer
@ ConsolepGetNumberOfFonts
@ ConsolepNotifyLastClose
@ ConsolepGetNumberOfInputEvents
@ ConsolepGetKeyboardLayoutName
@ ConsolepSetHardwareState
@ ConsolepScrollScreenBuffer
@ ConsolepGetLargestWindowSize
@ ConsolepGetConsoleWindow
@ ConsolepSetTextAttribute
@ ConsolepSetScreenBufferSize
@ ConsolepSetHandleInformation
@ ConsolepGetScreenBufferInfo
#define CONSRV_SERVERDLL_INDEX
enum _CONSOLE_HANDLE_TYPE CONSOLE_HANDLE_TYPE
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
#define CSR_CREATE_API_NUMBER(ServerId, ApiId)
#define ERROR_NOT_ENOUGH_MEMORY
static CHAR AppName[MAX_PATH]
#define NT_SUCCESS(StatCode)
static const WCHAR Title[]
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define INVALID_HANDLE_VALUE
#define ERROR_INVALID_HANDLE
#define ERROR_ACCESS_DENIED
BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleKeyboardLayoutNameA(OUT LPSTR pszLayoutName)
BOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput, BOOL bAbsolute, CONST SMALL_RECT *lpConsoleWindow)
BOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo)
BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleCursorMode(HANDLE hConsole, PBOOL pUnknown1, PBOOL pUnknown2)
BOOL WINAPI DECLSPEC_HOTPATCH CloseConsoleHandle(HANDLE hHandle)
static BOOL IntUnregisterConsoleIME(_In_ DWORD dwThreadId)
static BOOL AddConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine)
static WCHAR StartDirBuffer[MAX_PATH+1]
static WCHAR ExeNameBuffer[EXENAME_LENGTH]
LPCWSTR IntCheckForConsoleFileName(IN LPCWSTR pszName, IN DWORD dwDesiredAccess)
HMENU WINAPI DECLSPEC_HOTPATCH ConsoleMenuControl(HANDLE hConsoleOutput, DWORD dwCmdIdLow, DWORD dwCmdIdHigh)
static ULONG NrCtrlHandlers
DWORD WINAPI DECLSPEC_HOTPATCH GetNumberOfConsoleFonts(VOID)
static PHANDLER_ROUTINE * CtrlHandlers
HANDLE WINAPI DECLSPEC_HOTPATCH DuplicateConsoleHandle(HANDLE hConsole, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOptions)
DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleTitleA(LPSTR lpConsoleTitle, DWORD nSize)
static ULONG NrAllocatedHandlers
BOOL WINAPI InvalidateConsoleDIBits(IN HANDLE hConsoleOutput, IN PSMALL_RECT lpRect)
BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleNlsMode(HANDLE hConsole, LPDWORD lpMode)
static LPCWSTR BaseConInputFileName
DWORD WINAPI ConsoleControlDispatcher(IN LPVOID lpThreadParameter)
RTL_CRITICAL_SECTION ConsoleLock
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleCursorMode(HANDLE hConsole, BOOL Unknown1, BOOL Unknown2)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleOS2OemFormat(BOOL bUnknown)
UINT WINAPI DECLSPEC_HOTPATCH GetConsoleOutputCP(VOID)
BOOL WINAPI GetConsoleHandleInformation(IN HANDLE hHandle, OUT LPDWORD lpdwFlags)
BOOL WINAPI DECLSPEC_HOTPATCH ScrollConsoleScreenBufferA(HANDLE hConsoleOutput, CONST SMALL_RECT *lpScrollRectangle, CONST SMALL_RECT *lpClipRectangle, COORD dwDestinationOrigin, CONST CHAR_INFO *lpFill)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleScreenBufferSize(HANDLE hConsoleOutput, COORD dwSize)
static BOOL IntRegisterConsoleIME(_In_ HWND hWnd, _In_ DWORD dwThreadId, _In_opt_ SIZE_T cbDesktop, _In_opt_ PWSTR pDesktop, _Out_opt_ PDWORD pdwAttachToThreadId)
BOOL WINAPI DECLSPEC_HOTPATCH RegisterConsoleOS2(BOOL bUnknown)
VOID SetTEBLangID(VOID)
Internal helper function used to synchronize the current thread's language ID with the one from the c...
BOOL WINAPI SetConsoleHardwareState(HANDLE hConsoleOutput, DWORD Flags, DWORD State)
COORD WINAPI DECLSPEC_HOTPATCH GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
BOOL WINAPI DECLSPEC_HOTPATCH VerifyConsoleIoHandle(HANDLE hIoHandle)
static BOOLEAN ExeNameInitialized
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleIcon(HICON hIcon)
BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons)
HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess, DWORD dwShareMode, CONST SECURITY_ATTRIBUTES *lpSecurityAttributes, DWORD dwFlags, LPVOID lpScreenBufferData)
static LPCWSTR BaseConFileName
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
BOOL WINAPI GetCurrentConsoleFont(IN HANDLE hConsoleOutput, IN BOOL bMaximumWindow, OUT PCONSOLE_FONT_INFO lpConsoleCurrentFont)
static BOOL RemoveConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine)
BOOL WINAPI GetConsoleHardwareState(HANDLE hConsoleOutput, PDWORD Flags, PDWORD State)
BOOL WINAPI SetConsoleMaximumWindowSize(HANDLE hConsoleOutput, COORD dwMaximumSize)
static BOOL IntAttachConsole(DWORD ProcessId, LPTHREAD_START_ROUTINE CtrlRoutine, LPTHREAD_START_ROUTINE PropRoutine, PCONSOLE_START_INFO ConsoleStartInfo)
BOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleTitleA(LPCSTR lpConsoleTitle)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsolePalette(HANDLE hConsoleOutput, HPALETTE hPalette, UINT dwUsage)
INT WINAPI DECLSPEC_HOTPATCH ShowConsoleCursor(HANDLE hConsoleOutput, BOOL bShow)
COORD WINAPI DECLSPEC_HOTPATCH GetConsoleFontSize(IN HANDLE hConsoleOutput, IN DWORD nFont)
static RTL_CRITICAL_SECTION ExeNameLock
DWORD WINAPI SetLastConsoleEventActive(VOID)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleCP(UINT wCodePageID)
BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleKeyboardLayoutNameW(OUT LPWSTR pszLayoutName)
BOOL WINAPI SetConsoleHandleInformation(IN HANDLE hHandle, IN DWORD dwMask, IN DWORD dwFlags)
USHORT GetCurrentExeName(OUT PWCHAR ExeName, IN USHORT BufferSize)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleCursor(HANDLE hConsoleOutput, HCURSOR hCursor)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleTitleW(LPCWSTR lpConsoleTitle)
static DWORD IntGetConsoleTitle(LPVOID lpConsoleTitle, DWORD dwNumChars, BOOLEAN bUnicode)
BOOL WINAPI GetConsoleCharType(HANDLE hConsole, COORD Coord, PDWORD Type)
static PHANDLER_ROUTINE InitialHandler[1]
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
BOOL WINAPI SetConsoleDisplayMode(HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine, BOOL Add)
static BOOL IntSetConsoleTitle(CONST VOID *lpConsoleTitle, BOOLEAN bUnicode)
BOOL WINAPI DECLSPEC_HOTPATCH SetStdHandle(DWORD nStdHandle, HANDLE hHandle)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
BOOL WINAPI DECLSPEC_HOTPATCH RegisterConsoleIME(_In_ HWND hWnd, _Out_opt_ LPDWORD pdwAttachToThreadId)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleNlsMode(HANDLE hConsole, DWORD dwMode)
BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput, LPDWORD lpNumberOfEvents)
DWORD WINAPI GetConsoleFontInfo(IN HANDLE hConsoleOutput, IN BOOL bMaximumWindow, IN DWORD nFontCount, OUT PCONSOLE_FONT_INFO lpConsoleFontInfo)
static BOOL WINAPI DefaultConsoleCtrlHandler(DWORD Event)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMenuClose(BOOL bEnable)
BOOL WINAPI DECLSPEC_HOTPATCH UnregisterConsoleIME(VOID)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleLocalEUDC(DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
HANDLE WINAPI GetConsoleInputWaitHandle(VOID)
static BOOL IntGetConsoleKeyboardLayoutName(OUT PVOID pszLayoutName, IN BOOL bAnsi)
BOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo)
UINT WINAPI DECLSPEC_HOTPATCH GetConsoleCP(VOID)
static USHORT ExeNameLength
DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleInputExeNameW(IN DWORD nBufferLength, OUT LPWSTR lpExeName)
HWND WINAPI DECLSPEC_HOTPATCH GetConsoleWindow(VOID)
DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleTitleW(LPWSTR lpConsoleTitle, DWORD nSize)
VOID InitializeCtrlHandling(VOID)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleInputExeNameW(IN LPCWSTR lpExeName)
HANDLE WINAPI OpenConsoleW(LPCWSTR wsName, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwShareMode)
static LPCWSTR BaseConOutputFileName
static BOOLEAN LastCloseNotify
DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList, DWORD dwProcessCount)
DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleInputExeNameA(IN DWORD nBufferLength, OUT LPSTR lpExeName)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleInputExeNameA(IN LPCSTR lpExeName)
VOID SetUpAppName(IN BOOLEAN CaptureStrings, IN OUT LPDWORD CurDirLength, IN OUT LPWSTR *CurDir, IN OUT LPDWORD AppNameLength, IN OUT LPWSTR *AppName)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleFont(IN HANDLE hConsoleOutput, IN DWORD nFont)
static USHORT StartDirLength
BOOLEAN ConsoleInitialized
static BOOL IntAllocConsole(LPWSTR Title, DWORD TitleLength, LPWSTR Desktop, DWORD DesktopLength, LPWSTR CurDir, DWORD CurDirLength, LPWSTR AppName, DWORD AppNameLength, LPTHREAD_START_ROUTINE CtrlRoutine, LPTHREAD_START_ROUTINE PropRoutine, PCONSOLE_START_INFO ConsoleStartInfo)
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleKeyShortcuts(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3)
BOOL WINAPI DECLSPEC_HOTPATCH GenerateConsoleCtrlEvent(DWORD dwCtrlEvent, DWORD dwProcessGroupId)
BOOL WINAPI DECLSPEC_HOTPATCH ScrollConsoleScreenBufferW(HANDLE hConsoleOutput, CONST SMALL_RECT *lpScrollRectangle, CONST SMALL_RECT *lpClipRectangle, COORD dwDestinationOrigin, CONST CHAR_INFO *lpFill)
static BOOL IntScrollConsoleScreenBuffer(HANDLE hConsoleOutput, CONST SMALL_RECT *lpScrollRectangle, CONST SMALL_RECT *lpClipRectangle, COORD dwDestinationOrigin, CONST CHAR_INFO *lpFill, BOOL bUnicode)
DWORD WINAPI PropDialogHandler(IN LPVOID lpThreadParameter)
VOID SetUpConsoleInfo(IN BOOLEAN CaptureTitle, IN OUT LPDWORD pTitleLength, IN OUT LPWSTR *lpTitle OPTIONAL, IN OUT LPDWORD pDesktopLength, IN OUT LPWSTR *lpDesktop OPTIONAL, IN OUT PCONSOLE_START_INFO ConsoleStartInfo)
VOID SetUpHandles(IN PCONSOLE_START_INFO ConsoleStartInfo)
VOID WINAPI ExitProcess(IN UINT uExitCode)
BOOL WINAPI SetThreadPriority(IN HANDLE hThread, IN int nPriority)
VOID WINAPI ExitThread(IN DWORD uExitCode)
BOOL WINAPI SetThreadLocale(LCID lcid)
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define EXCEPTION_EXECUTE_HANDLER
#define memmove(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static DWORD LPSTR lpExeName
static BOOL bInheritHandle
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
NTSYSAPI ULONG NTAPI RtlIsDosDeviceName_U(_In_ PCWSTR Name)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlInitializeCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI VOID NTAPI RtlRaiseException(_In_ PEXCEPTION_RECORD ExceptionRecord)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
#define MAKELCID(lgid, srtid)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define DBG_CONTROL_BREAK
#define STATUS_ACCESS_VIOLATION
NTSTATUS NTAPI NtWaitForMultipleObjects(IN ULONG ObjectCount, IN PHANDLE HandleArray, IN WAIT_TYPE WaitType, IN BOOLEAN Alertable, IN PLARGE_INTEGER TimeOut OPTIONAL)
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
DWORD BaseSetLastNTError(IN NTSTATUS Status)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
PCSR_CAPTURE_BUFFER NTAPI CsrAllocateCaptureBuffer(_In_ ULONG ArgumentCount, _In_ ULONG BufferSize)
ULONG NTAPI CsrAllocateMessagePointer(_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer, _In_ ULONG MessageLength, _Out_ PVOID *CapturedData)
VOID NTAPI CsrFreeCaptureBuffer(_In_ _Frees_ptr_ PCSR_CAPTURE_BUFFER CaptureBuffer)
VOID NTAPI CsrCaptureMessageBuffer(_Inout_ PCSR_CAPTURE_BUFFER CaptureBuffer, _In_opt_ PVOID MessageBuffer, _In_ ULONG MessageLength, _Out_ PVOID *CapturedData)
NTSTATUS NTAPI CsrClientCallServer(_Inout_ PCSR_API_MESSAGE ApiMessage, _Inout_opt_ PCSR_CAPTURE_BUFFER CaptureBuffer, _In_ CSR_API_NUMBER ApiNumber, _In_ ULONG DataLength)
#define CONSOLE_FILE_NAME
#define CONSOLE_INPUT_FILE_NAME
#define CONSOLE_OUTPUT_FILE_NAME
#define DECLSPEC_HOTPATCH
#define STATUS_BUFFER_OVERFLOW
LPTHREAD_START_ROUTINE PropRoutine
PCONSOLE_START_INFO ConsoleStartInfo
LPTHREAD_START_ROUTINE CtrlRoutine
CONSOLE_GETMOUSEINFO GetMouseInfoRequest
CONSOLE_SETCURSORPOSITION SetCursorPositionRequest
CONSOLE_OPENCONSOLE OpenConsoleRequest
CONSOLE_SETTEXTATTRIB SetTextAttribRequest
CONSOLE_GETSETHWSTATE HardwareStateRequest
CONSOLE_CLOSEHANDLE CloseHandleRequest
CONSOLE_GETFONTINFO GetFontInfoRequest
CONSOLE_ALLOCCONSOLE AllocConsoleRequest
CONSOLE_SETPALETTE SetPaletteRequest
CONSOLE_SETDISPLAYMODE SetDisplayModeRequest
CONSOLE_REGISTERCONSOLEIME RegisterConsoleIME
CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest
CONSOLE_GETINPUTOUTPUTCP GetConsoleCPRequest
CONSOLE_MENUCONTROL MenuControlRequest
CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest
CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest
CONSOLE_GETNUMFONTS GetNumFontsRequest
CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest
CONSOLE_GETLANGID LangIdRequest
CONSOLE_VERIFYHANDLE VerifyHandleRequest
CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest
CONSOLE_SETCURSOR SetCursorRequest
CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest
CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest
CONSOLE_GETKBDLAYOUTNAME GetKbdLayoutNameRequest
CONSOLE_GETPROCESSLIST GetProcessListRequest
CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest
CONSOLE_SETMENUCLOSE SetMenuCloseRequest
CONSOLE_FREECONSOLE FreeConsoleRequest
CONSOLE_GETWINDOW GetWindowRequest
CONSOLE_SETHANDLEINFO SetHandleInfoRequest
CONSOLE_GETSETCONSOLETITLE TitleRequest
CONSOLE_GETCURRENTFONT GetCurrentFontRequest
CONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest
CONSOLE_GETDISPLAYMODE GetDisplayModeRequest
CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest
CONSOLE_GETFONTSIZE GetFontSizeRequest
CONSOLE_ATTACHCONSOLE AttachConsoleRequest
CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest
CONSOLE_UNREGISTERCONSOLEIME UnregisterConsoleIME
CONSOLE_GETSETCURSORINFO CursorInfoRequest
CONSOLE_SETFONT SetFontRequest
CONSOLE_GETHANDLEINFO GetHandleInfoRequest
CONSOLE_SETWINDOWINFO SetWindowInfoRequest
CONSOLE_INVALIDATEDIBITS InvalidateDIBitsRequest
CONSOLE_GETLARGESTWINDOWSIZE GetLargestWindowSizeRequest
CONSOLE_SHOWCURSOR ShowCursorRequest
CONSOLE_SETINPUTOUTPUTCP SetConsoleCPRequest
union _CONSOLE_API_MESSAGE::@3552 Data
CONSOLE_SETICON SetIconRequest
CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest
LPTHREAD_START_ROUTINE CtrlRoutine
LPTHREAD_START_ROUTINE PropRoutine
PCONSOLE_START_INFO ConsoleStartInfo
CONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo
PCONSOLE_FONT_INFO FontInfo
CHAR LayoutBuffer[KL_NAMELENGTH *sizeof(WCHAR)]
CONSOLE_SELECTION_INFO Info
LPBITMAPINFO lpBitMapInfo
CONSOLE_HANDLE_TYPE HandleType
HANDLE InitEvents[MAX_INIT_EVENTS]
struct _EXCEPTION_RECORD * ExceptionRecord
UNICODE_STRING BaseDllName
struct _LIST_ENTRY * Flink
LIST_ENTRY InLoadOrderModuleList
PRTL_USER_PROCESS_PARAMETERS ProcessParameters
COORD dwMaximumWindowSize
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
#define STD_OUTPUT_HANDLE
HANDLE WINAPI GetCurrentThread(void)
DWORD WINAPI GetCurrentThreadId(void)
#define THREAD_PRIORITY_HIGHEST
DWORD(WINAPI * LPTHREAD_START_ROUTINE)(LPVOID)
*nSize LPSTR _Inout_ LPDWORD nSize
BOOL WINAPI IsDebuggerPresent(void)
_In_ LPCSTR _In_opt_ LPCSTR _In_ DWORD nBufferLength
#define CTRL_SHUTDOWN_EVENT
BOOL(CALLBACK * PHANDLER_ROUTINE)(_In_ DWORD)
#define CTRL_LOGOFF_EVENT
#define CONSOLE_TEXTMODE_BUFFER
#define CONSOLE_GRAPHICS_BUFFER
#define CTRL_LAST_CLOSE_EVENT