158 lines
4.1 KiB
C
158 lines
4.1 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
|
|
conmsgl1.h
|
|
|
|
Abstract:
|
|
|
|
This include file defines the layer 1 message formats used to communicate
|
|
between the client and server portions of the CONSOLE portion of the
|
|
Windows subsystem.
|
|
|
|
Author:
|
|
|
|
Therese Stowell (thereses) 10-Nov-1990
|
|
|
|
Revision History:
|
|
|
|
Wedson Almeida Filho (wedsonaf) 23-May-2010
|
|
Modified the messages for use with the console driver.
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#define CONSOLE_FIRST_API_NUMBER(Layer) \
|
|
(Layer << 24) \
|
|
|
|
typedef struct _CONSOLE_SERVER_MSG {
|
|
ULONG IconId;
|
|
ULONG HotKey;
|
|
ULONG StartupFlags;
|
|
USHORT FillAttribute;
|
|
USHORT ShowWindow;
|
|
COORD ScreenBufferSize;
|
|
COORD WindowSize;
|
|
COORD WindowOrigin;
|
|
ULONG ProcessGroupId;
|
|
BOOLEAN ConsoleApp;
|
|
BOOLEAN WindowVisible;
|
|
USHORT TitleLength;
|
|
WCHAR Title[MAX_PATH + 1];
|
|
USHORT ApplicationNameLength;
|
|
WCHAR ApplicationName[128];
|
|
USHORT CurrentDirectoryLength;
|
|
WCHAR CurrentDirectory[MAX_PATH + 1];
|
|
} CONSOLE_SERVER_MSG, *PCONSOLE_SERVER_MSG;
|
|
|
|
typedef struct _CONSOLE_BROKER_DATA {
|
|
WCHAR DesktopName[MAX_PATH];
|
|
} CONSOLE_BROKER_MSG, *PCONSOLE_BROKER_MSG;
|
|
|
|
typedef struct _CONSOLE_GETCP_MSG {
|
|
OUT ULONG CodePage;
|
|
IN BOOLEAN Output;
|
|
} CONSOLE_GETCP_MSG, *PCONSOLE_GETCP_MSG;
|
|
|
|
typedef struct _CONSOLE_MODE_MSG {
|
|
IN OUT ULONG Mode;
|
|
} CONSOLE_MODE_MSG, *PCONSOLE_MODE_MSG;
|
|
|
|
typedef struct _CONSOLE_GETNUMBEROFINPUTEVENTS_MSG {
|
|
OUT ULONG ReadyEvents;
|
|
} CONSOLE_GETNUMBEROFINPUTEVENTS_MSG, *PCONSOLE_GETNUMBEROFINPUTEVENTS_MSG;
|
|
|
|
typedef struct _CONSOLE_GETCONSOLEINPUT_MSG {
|
|
OUT ULONG NumRecords;
|
|
IN USHORT Flags;
|
|
IN BOOLEAN Unicode;
|
|
} CONSOLE_GETCONSOLEINPUT_MSG, *PCONSOLE_GETCONSOLEINPUT_MSG;
|
|
|
|
typedef struct _CONSOLE_READCONSOLE_MSG {
|
|
IN BOOLEAN Unicode;
|
|
IN BOOLEAN ProcessControlZ;
|
|
IN USHORT ExeNameLength;
|
|
IN ULONG InitialNumBytes;
|
|
IN ULONG CtrlWakeupMask;
|
|
OUT ULONG ControlKeyState;
|
|
OUT ULONG NumBytes;
|
|
} CONSOLE_READCONSOLE_MSG, *PCONSOLE_READCONSOLE_MSG;
|
|
|
|
typedef struct _CONSOLE_WRITECONSOLE_MSG {
|
|
OUT ULONG NumBytes;
|
|
IN BOOLEAN Unicode;
|
|
} CONSOLE_WRITECONSOLE_MSG, *PCONSOLE_WRITECONSOLE_MSG;
|
|
|
|
typedef struct _CONSOLE_LANGID_MSG {
|
|
OUT LANGID LangId;
|
|
} CONSOLE_LANGID_MSG, *PCONSOLE_LANGID_MSG;
|
|
|
|
typedef struct _CONSOLE_MAPBITMAP_MSG {
|
|
OUT HANDLE Mutex;
|
|
OUT PVOID Bitmap;
|
|
} CONSOLE_MAPBITMAP_MSG, *PCONSOLE_MAPBITMAP_MSG;
|
|
|
|
typedef struct _CONSOLE_MAPBITMAP_MSG64 {
|
|
OUT PVOID64 Mutex;
|
|
OUT PVOID64 Bitmap;
|
|
} CONSOLE_MAPBITMAP_MSG64, *PCONSOLE_MAPBITMAP_MSG64;
|
|
|
|
typedef enum _CONSOLE_API_NUMBER_L1 {
|
|
ConsolepGetCP = CONSOLE_FIRST_API_NUMBER(1),
|
|
ConsolepGetMode,
|
|
ConsolepSetMode,
|
|
ConsolepGetNumberOfInputEvents,
|
|
ConsolepGetConsoleInput,
|
|
ConsolepReadConsole,
|
|
ConsolepWriteConsole,
|
|
ConsolepNotifyLastClose,
|
|
ConsolepGetLangId,
|
|
ConsolepMapBitmap,
|
|
} CONSOLE_API_NUMBER_L1, *PCONSOLE_API_NUMBER_L1;
|
|
|
|
typedef struct _CONSOLE_MSG_HEADER {
|
|
ULONG ApiNumber;
|
|
ULONG ApiDescriptorSize;
|
|
} CONSOLE_MSG_HEADER, *PCONSOLE_MSG_HEADER;
|
|
|
|
typedef union _CONSOLE_MSG_BODY_L1 {
|
|
CONSOLE_GETCP_MSG GetConsoleCP;
|
|
CONSOLE_MODE_MSG GetConsoleMode;
|
|
CONSOLE_MODE_MSG SetConsoleMode;
|
|
CONSOLE_GETNUMBEROFINPUTEVENTS_MSG GetNumberOfConsoleInputEvents;
|
|
CONSOLE_GETCONSOLEINPUT_MSG GetConsoleInput;
|
|
CONSOLE_READCONSOLE_MSG ReadConsole;
|
|
CONSOLE_WRITECONSOLE_MSG WriteConsole;
|
|
CONSOLE_LANGID_MSG GetConsoleLangId;
|
|
|
|
#if defined(BUILD_WOW6432) && !defined(BUILD_WOW3232)
|
|
|
|
CONSOLE_MAPBITMAP_MSG64 MapBitmap;
|
|
|
|
#else
|
|
|
|
CONSOLE_MAPBITMAP_MSG MapBitmap;
|
|
|
|
#endif
|
|
|
|
} CONSOLE_MSG_BODY_L1, *PCONSOLE_MSG_BODY_L1;
|
|
|
|
#ifndef __cplusplus
|
|
typedef struct _CONSOLE_MSG_L1 {
|
|
CONSOLE_MSG_HEADER Header;
|
|
union {
|
|
CONSOLE_MSG_BODY_L1;
|
|
} u;
|
|
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
|
|
#else
|
|
typedef struct _CONSOLE_MSG_L1 :
|
|
public CONSOLE_MSG_HEADER
|
|
{
|
|
CONSOLE_MSG_BODY_L1 u;
|
|
} CONSOLE_MSG_L1, *PCONSOLE_MSG_L1;
|
|
#endif // __cplusplus
|