diff --git a/common/Makefile.am b/common/Makefile.am index a76c3f6e..7563b82b 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -7,6 +7,14 @@ endif EXTRA_DIST = pixman-region.c include_HEADERS = \ + ms-erref.h \ + ms-fscc.h \ + ms-rdpbcgr.h \ + ms-rdpefs.h \ + ms-rdpegdi.h \ + ms-rdpele.h \ + ms-rdperp.h \ + ms-smb2.h \ xrdp_client_info.h \ xrdp_constants.h \ xrdp_rail.h \ diff --git a/sesman/chansrv/ms-erref.h b/common/ms-erref.h similarity index 68% rename from sesman/chansrv/ms-erref.h rename to common/ms-erref.h index df92cd5b..3b1b75e5 100644 --- a/sesman/chansrv/ms-erref.h +++ b/common/ms-erref.h @@ -27,18 +27,16 @@ */ enum NTSTATUS { - NT_STATUS_SUCCESS = 0x00000000, - NT_STATUS_UNSUCCESSFUL = 0xC0000001, - NT_STATUS_NO_SUCH_FILE = 0xC000000F, - NT_STATUS_ACCESS_DENIED = 0xC0000022, - NT_STATUS_OBJECT_NAME_INVALID = 0xC0000033, - NT_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034, - NT_STATUS_SHARING_VIOLATION = 0xC0000043, - NT_STATUS_NO_MORE_FILES = 0x80000006 + STATUS_SUCCESS = 0x00000000, + + STATUS_NO_MORE_FILES = 0x80000006, + + STATUS_UNSUCCESSFUL = 0xc0000001, + STATUS_NO_SUCH_FILE = 0xc000000f, + STATUS_ACCESS_DENIED = 0xc0000022, + STATUS_OBJECT_NAME_INVALID = 0xc0000033, + STATUS_OBJECT_NAME_NOT_FOUND = 0xc0000034, + STATUS_SHARING_VIOLATION = 0xc0000043 }; #endif /* MS_ERREF_H */ - - - - diff --git a/sesman/chansrv/ms-fscc.h b/common/ms-fscc.h similarity index 100% rename from sesman/chansrv/ms-fscc.h rename to common/ms-fscc.h diff --git a/common/ms-rdpbcgr.h b/common/ms-rdpbcgr.h new file mode 100644 index 00000000..ad81d0df --- /dev/null +++ b/common/ms-rdpbcgr.h @@ -0,0 +1,509 @@ +/** + * xrdp: A Remote Desktop Protocol server. + * + * MS-RDPBCGR : Definitions from [MS-RDPBCGR] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * References to MS-RDPBCGR are currently correct for v20190923 of that + * document + */ + +#if !defined(MS_RDPBCGR_H) +#define MS_RDPBCGR_H + +/* RDP Security Negotiation codes */ +#define RDP_NEG_REQ 0x01 /* MS-RDPBCGR 2.2.1.1.1 */ +#define RDP_NEG_RSP 0x02 /* MS-RDPBCGR 2.2.1.2.1 */ +#define RDP_NEG_FAILURE 0x03 /* MS-RDPBCGR 2.2.1.2.2 */ +#define RDP_CORRELATION_INFO 0x06 /* MS-RDPBCGR 2.2.1.1.2 */ + +/* Protocol types codes (2.2.1.1.1, 2.2.1.2.1) */ +#define PROTOCOL_RDP 0x00000000 +#define PROTOCOL_SSL 0x00000001 +#define PROTOCOL_HYBRID 0x00000002 +#define PROTOCOL_RDSTLS 0x00000004 +#define PROTOCOL_HYBRID_EX 0x00000008 + +/* Negotiation packet flags (2.2.1.2.1) */ +#define EXTENDED_CLIENT_DATA_SUPPORTED 0x01 +#define DYNVC_GFX_PROTOCOL_SUPPORTED 0x02 +#define NEGRSP_RESERVED 0x04 +#define RESTRICTED_ADMIN_MODE_SUPPORTED 0x08 +#define REDIRECTED_AUTHENTICATION_MODE_SUPPORTED 0x10 + +/* RDP Negotiation Failure Codes (2.2.1.2.2) */ +#define SSL_REQUIRED_BY_SERVER 0x00000001 +#define SSL_NOT_ALLOWED_BY_SERVER 0x00000002 +#define SSL_CERT_NOT_ON_SERVER 0x00000003 +#define INCONSISTENT_FLAGS 0x00000004 +#define HYBRID_REQUIRED_BY_SERVER 0x00000005 +#define SSL_WITH_USER_AUTH_REQUIRED_BY_SERVER 0x00000006 + +/* TS_UD_HEADER: type ((2.2.1.3.1) */ +/* TODO: to be renamed */ +#define SEC_TAG_CLI_INFO 0xc001 /* CS_CORE? */ +#define SEC_TAG_CLI_CRYPT 0xc002 /* CS_SECURITY? */ +#define SEC_TAG_CLI_CHANNELS 0xc003 /* CS_CHANNELS? */ +#define SEC_TAG_CLI_4 0xc004 /* CS_CLUSTER? */ +#define SEC_TAG_CLI_MONITOR 0xc005 /* CS_MONITOR */ + +/* Client Core Data: colorDepth, postBeta2ColorDepth (2.2.1.3.2) */ +#define RNS_UD_COLOR_4BPP 0xCA00 +#define RNS_UD_COLOR_8BPP 0xCA01 +#define RNS_UD_COLOR_16BPP_555 0xCA02 +#define RNS_UD_COLOR_16BPP_565 0xCA03 +#define RNS_UD_COLOR_24BPP 0xCA04 + +/* Client Core Data: connectionType (2.2.1.3.2) */ +#define CONNECTION_TYPE_MODEM 0x01 +#define CONNECTION_TYPE_BROADBAND_LOW 0x02 +#define CONNECTION_TYPE_SATELLITE 0x03 +#define CONNECTION_TYPE_BROADBAND_HIGH 0x04 +#define CONNECTION_TYPE_WAN 0x05 +#define CONNECTION_TYPE_LAN 0x06 +#define CONNECTION_TYPE_AUTODETECT 0x07 + +/* Virtual channel options */ +/* Channel Definition Structure: options (2.2.1.3.4.1) */ +/* NOTE: XR_ prefixed to avoid conflict with FreeRDP */ +#define XR_CHANNEL_OPTION_INITIALIZED 0x80000000 +#define XR_CHANNEL_OPTION_ENCRYPT_RDP 0x40000000 +#define XR_CHANNEL_OPTION_ENCRYPT_SC 0x20000000 +#define XR_CHANNEL_OPTION_ENCRYPT_CS 0x10000000 +#define XR_CHANNEL_OPTION_PRI_HIGH 0x08000000 +#define XR_CHANNEL_OPTION_PRI_MED 0x04000000 +#define XR_CHANNEL_OPTION_PRI_LOW 0x02000000 +#define XR_CHANNEL_OPTION_COMPRESS_RDP 0x00800000 +#define XR_CHANNEL_OPTION_COMPRESS 0x00400000 +#define XR_CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 +#define REMOTE_CONTROL_PERSISTENT 0x00100000 + +/* Server Proprietary Certificate (2.2.1.4.3.1.1) */ +/* TODO: to be renamed */ +#define SEC_TAG_PUBKEY 0x0006 /* BB_RSA_KEY_BLOB */ +#define SEC_TAG_KEYSIG 0x0008 /* BB_SIGNATURE_KEY_BLOB */ + +/* Info Packet (TS_INFO_PACKET): flags (2.2.1.11.1.1) */ +/* TODO: to be renamed */ +#define RDP_LOGON_AUTO 0x0008 +#define RDP_LOGON_NORMAL 0x0033 +#define RDP_COMPRESSION 0x0080 +#define RDP_LOGON_BLOB 0x0100 +#define RDP_LOGON_LEAVE_AUDIO 0x2000 +#define RDP_LOGON_RAIL 0x8000 + +/* Extended Info Packet: performanceFlags (2.2.1.11.1.1.1) */ +/* TODO: to be renamed */ +#define RDP5_DISABLE_NOTHING 0x00 +#define RDP5_NO_WALLPAPER 0x01 +#define RDP5_NO_FULLWINDOWDRAG 0x02 +#define RDP5_NO_MENUANIMATIONS 0x04 +#define RDP5_NO_THEMING 0x08 +#define RDP5_NO_CURSOR_SHADOW 0x20 +#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ + +/* LICENSE_BINARY_BLOB (2.2.1.12.1.2) */ +#define LICENCE_TAG_USER 0x000f /* BB_CLIENT_USER_NAME_BLOB */ +#define LICENCE_TAG_HOST 0x0010 /* BB_CLIENT_MACHINE_NAME_BLOB */ + +/* Maps to generalCapabilitySet in T.128 page 138 */ + +/* Capability Set: capabilitySetType (2.2.1.13.1.1.1) */ +#define CAPSTYPE_GENERAL 0x0001 +#define CAPSTYPE_GENERAL_LEN 0x18 + +#define CAPSTYPE_BITMAP 0x0002 +#define CAPSTYPE_BITMAP_LEN 0x1C + +#define CAPSTYPE_ORDER 0x0003 +#define CAPSTYPE_ORDER_LEN 0x58 +#define ORDER_CAP_NEGOTIATE 2 /* NEGOTIATEORDERSUPPORT? not used */ +#define ORDER_CAP_NOSUPPORT 4 /* not used */ + +#define CAPSTYPE_BITMAPCACHE 0x0004 +#define CAPSTYPE_BITMAPCACHE_LEN 0x28 + +#define CAPSTYPE_CONTROL 0x0005 +#define CAPSTYPE_CONTROL_LEN 0x0C + +#define CAPSTYPE_ACTIVATION 0x0007 +#define CAPSTYPE_ACTIVATION_LEN 0x0C + +#define CAPSTYPE_POINTER 0x0008 +#define CAPSTYPE_POINTER_LEN 0x0a +#define CAPSTYPE_POINTER_MONO_LEN 0x08 + +#define CAPSTYPE_SHARE 0x0009 +#define CAPSTYPE_SHARE_LEN 0x08 + +#define CAPSTYPE_COLORCACHE 0x000A +#define CAPSTYPE_COLORCACHE_LEN 0x08 + +#define CAPSTYPE_SOUND 0x000C + +#define CAPSTYPE_INPUT 0x000D +#define CAPSTYPE_INPUT_LEN 0x58 + +#define CAPSTYPE_FONT 0x000E +#define CAPSTYPE_FONT_LEN 0x04 + +#define CAPSTYPE_BRUSH 0x000F +#define CAPSTYPE_BRUSH_LEN 0x08 + +#define CAPSTYPE_GLYPHCACHE 0x0010 +#define CAPSTYPE_OFFSCREENCACHE 0x0011 + +#define CAPSTYPE_BITMAPCACHE_HOSTSUPPORT 0x0012 +#define CAPSTYPE_BITMAPCACHE_HOSTSUPPORT_LEN 0x08 + +#define CAPSTYPE_BITMAPCACHE_REV2 0x0013 +#define CAPSTYPE_BITMAPCACHE_REV2_LEN 0x28 +#define BMPCACHE2_FLAG_PERSIST ((long)1<<31) + +#define CAPSTYPE_VIRTUALCHANNEL 0x0014 +#define CAPSTYPE_VIRTUALCHANNEL_LEN 0x08 + +#define CAPSTYPE_DRAWNINGRIDCACHE 0x0015 +#define CAPSTYPE_DRAWGDIPLUS 0x0016 +#define CAPSTYPE_RAIL 0x0017 +#define CAPSTYPE_WINDOW 0x0018 + +#define CAPSSETTYPE_COMPDESK 0x0019 +#define CAPSSETTYPE_COMPDESK_LEN 0x06 + +#define CAPSSETTYPE_MULTIFRAGMENTUPDATE 0x001A +#define CAPSSETTYPE_MULTIFRAGMENTUPDATE_LEN 0x08 + +#define CAPSETTYPE_LARGE_POINTER 0x001B +#define CAPSETTYPE_LARGE_POINTER_LEN 0x06 + +#define CAPSETTYPE_SURFACE_COMMANDS 0x001C +#define CAPSETTYPE_SURFACE_COMMANDS_LEN 0x0C + +#define CAPSSETTYPE_BITMAP_CODECS 0x001D +#define CAPSSETTYPE_BITMAP_CODECS_LEN 0x1C + +#define CAPSTYPE_FRAME_ACKNOWLEDGE 0x001E +#define CAPSTYPE_FRAME_ACKNOWLEDGE_LEN 0x08 + +/* Control PDU Data: action (2.2.1.15.1) */ +/* TODO: to be renamed */ +#define RDP_CTL_REQUEST_CONTROL 1 /* CTRLACTION_REQUEST_CONTROL */ +#define RDP_CTL_GRANT_CONTROL 2 +#define RDP_CTL_DETACH 3 +#define RDP_CTL_COOPERATE 4 + +/* RDP5 disconnect PDU */ +/* Set Error Info PDU Data: errorInfo (2.2.5.1.1) */ +/* TODO: to be renamed */ +#define exDiscReasonNoInfo 0x0000 +#define exDiscReasonAPIInitiatedDisconnect 0x0001 +#define exDiscReasonAPIInitiatedLogoff 0x0002 +#define exDiscReasonServerIdleTimeout 0x0003 +#define exDiscReasonServerLogonTimeout 0x0004 +#define exDiscReasonReplacedByOtherConnection 0x0005 +#define exDiscReasonOutOfMemory 0x0006 +#define exDiscReasonServerDeniedConnection 0x0007 +#define exDiscReasonServerDeniedConnectionFips 0x0008 +#define exDiscReasonLicenseInternal 0x0100 +#define exDiscReasonLicenseNoLicenseServer 0x0101 +#define exDiscReasonLicenseNoLicense 0x0102 +#define exDiscReasonLicenseErrClientMsg 0x0103 +#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104 +#define exDiscReasonLicenseErrClientLicense 0x0105 +#define exDiscReasonLicenseCantFinishProtocol 0x0106 +#define exDiscReasonLicenseClientEndedProtocol 0x0107 +#define exDiscReasonLicenseErrClientEncryption 0x0108 +#define exDiscReasonLicenseCantUpgradeLicense 0x0109 +#define exDiscReasonLicenseNoRemoteConnections 0x010a + +/* General Capability Set: osMajorType (2.2.7.1.1) */ +#define OSMAJORTYPE_UNSPECIFIED 0x0000 +#define OSMAJORTYPE_WINDOWS 0x0001 +#define OSMAJORTYPE_OS2 0x0002 +#define OSMAJORTYPE_MACINTOSH 0x0003 +#define OSMAJORTYPE_UNIX 0x0004 +#define OSMAJORTYPE_IOS 0x0005 +#define OSMAJORTYPE_OSX 0x0006 +#define OSMAJORTYPE_ANDROID 0x0007 +#define OSMAJORTYPE_CHROME_OS 0x0008 + +/* General Capability Set: osMinorType (2.2.7.1.1) */ +#define OSMINORTYPE_UNSPECIFIED 0x0000 +#define OSMINORTYPE_WINDOWS_31X 0x0001 +#define OSMINORTYPE_WINDOWS_95 0x0002 +#define OSMINORTYPE_WINDOWS_NT 0x0003 +#define OSMINORTYPE_OS2_V21 0x0004 +#define OSMINORTYPE_POWER_PC 0x0005 +#define OSMINORTYPE_MACINTOSH 0x0006 +#define OSMINORTYPE_NATIVE_XSERVER 0x0007 +#define OSMINORTYPE_PSEUDO_XSERVER 0x0008 +#define OSMINORTYPE_WINDOWS_RT 0x0009 + +/* General Capability Set: protocolVersion (2.2.7.1.1) */ +#define TS_CAPS_PROTOCOLVERSION 0x0200 + +/* General Capability Set: extraFlags (2.2.7.1.1) */ +#define FASTPATH_OUTPUT_SUPPORTED 0x0001 +#define NO_BITMAP_COMPRESSION_HDR 0x0400 +#define LONG_CREDENTIALS_SUPPORTED 0x0004 +#define AUTORECONNECT_SUPPORTED 0x0008 +#define ENC_SALTED_CHECKSUM 0x0010 + +/* Order Capability Set: orderSupportExFlags (2.2.7.1.3) */ +/* NOTE: XR_ prefixed to avoid conflict with FreeRDP */ +#define XR_ORDERFLAGS_EX_CACHE_BITMAP_REV3_SUPPORT 0x0002 +#define XR_ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT 0x0004 + +/* Order Capability Set: orderFlags (2.2.7.1.3) */ +#define NEGOTIATEORDERSUPPORT 0x0002 +#define ZEROBOUNDSDELTASUPPORT 0x0008 +#define COLORINDEXSUPPORT 0x0020 +#define SOLIDPATTERNBRUSHONLY 0x0040 +#define ORDERFLAGS_EXTRA_FLAGS 0x0080 + +/* Order Capability Set: orderSupport (2.2.7.1.3) */ +#define TS_NEG_DSTBLT_INDEX 0x00 +#define TS_NEG_PATBLT_INDEX 0x01 +#define TS_NEG_SCRBLT_INDEX 0x02 +#define TS_NEG_MEMBLT_INDEX 0x03 +#define TS_NEG_MEM3BLT_INDEX 0x04 + /* 0x05 */ + /* 0x06 */ +#define TS_NEG_DRAWNINEGRID_INDEX 0x07 +#define TS_NEG_LINETO_INDEX 0x08 +#define TS_NEG_MULTI_DRAWNINEGRID_INDEX 0x09 + /* 0x0A */ +#define TS_NEG_SAVEBITMAP_INDEX 0x0B + /* 0x0C */ + /* 0x0D */ + /* 0x0E */ +#define TS_NEG_MULTIDSTBLT_INDEX 0x0F +#define TS_NEG_MULTIPATBLT_INDEX 0x10 +#define TS_NEG_MULTISCRBLT_INDEX 0x11 +#define TS_NEG_MULTIOPAQUERECT_INDEX 0x12 +#define TS_NEG_FAST_INDEX_INDEX 0x13 +#define TS_NEG_POLYGON_SC_INDEX 0x14 +#define TS_NEG_POLYGON_CB_INDEX 0x15 +#define TS_NEG_POLYLINE_INDEX 0x16 + /* 0x17 */ +#define TS_NEG_FAST_GLYPH_INDEX 0x18 +#define TS_NEG_ELLIPSE_SC_INDEX 0x19 +#define TS_NEG_ELLIPSE_CB_INDEX 0x1A +#define TS_NEG_INDEX_INDEX 0x1B + /* 0x1C */ + /* 0x1D */ + /* 0x1E */ + /* 0x1F */ + +/* Input Capability Set: inputFlags (2.2.7.1.6) */ +#define INPUT_FLAG_SCANCODES 0x0001 +#define INPUT_FLAG_MOUSEX 0x0004 +#define INPUT_FLAG_FASTPATH_INPUT 0x0008 +#define INPUT_FLAG_UNICODE 0x0010 +#define INPUT_FLAG_FASTPATH_INPUT2 0x0020 +#define INPUT_FLAG_UNUSED1 0x0040 +#define INPUT_FLAG_UNUSED2 0x0080 +#define TS_INPUT_FLAG_MOUSE_HWHEEL 0x0100 +#define TS_INPUT_FLAG_QOE_TIMESTAMPS 0x0200 + +/* Glyph Cache Capability Set: GlyphSupportLevel (2.2.7.1.8) */ +#define GLYPH_SUPPORT_NONE 0x0000 +#define GLYPH_SUPPORT_PARTIAL 0x0001 +#define GLYPH_SUPPORT_FULL 0x0002 +#define GLYPH_SUPPORT_ENCODE 0x0003 + +/* Desktop Composition Capability Set: CompDeskSupportLevel (2.2.7.2.8) */ +#define COMPDESK_NOT_SUPPORTED 0x0000 +#define COMPDESK_SUPPORTED 0x0001 + +/* Surface Commands Capability Set: cmdFlags (2.2.7.2.9) */ +#define SURFCMDS_SETSURFACEBITS 0x00000002 +#define SURFCMDS_FRAMEMARKER 0x00000010 +#define SURFCMDS_STREAMSUFRACEBITS 0x00000040 + +/* Bitmap Codec: codecGUID (2.2.7.2.10.1.1) */ + +/* CODEC_GUID_NSCODEC CA8D1BB9-000F-154F-589FAE2D1A87E2D6 */ +#define XR_CODEC_GUID_NSCODEC \ + "\xb9\x1b\x8d\xca\x0f\x00\x4f\x15\x58\x9f\xae\x2d\x1a\x87\xe2\xd6" + +/* CODEC_GUID_REMOTEFX 76772F12-BD72-4463-AFB3B73C9C6F7886 */ +#define XR_CODEC_GUID_REMOTEFX \ + "\x12\x2F\x77\x76\x72\xBD\x63\x44\xAF\xB3\xB7\x3C\x9C\x6F\x78\x86" + +/* CODEC_GUID_IMAGE_REMOTEFX 2744CCD4-9D8A-4E74-803C-0ECBEEA19C54 */ +#define XR_CODEC_GUID_IMAGE_REMOTEFX \ + "\xD4\xCC\x44\x27\x8A\x9D\x74\x4E\x80\x3C\x0E\xCB\xEE\xA1\x9C\x54" + +/* MFVideoFormat_H264 0x34363248-0000-0010-800000AA00389B71 */ +#define XR_CODEC_GUID_H264 \ + "\x48\x32\x36\x34\x00\x00\x10\x00\x80\x00\x00\xAA\x00\x38\x9B\x71" + +/* CODEC_GUID_JPEG 1BAF4CE6-9EED-430C-869ACB8B37B66237 */ +#define XR_CODEC_GUID_JPEG \ + "\xE6\x4C\xAF\x1B\xED\x9E\x0C\x43\x86\x9A\xCB\x8B\x37\xB6\x62\x37" + +/* CODEC_GUID_PNG 0E0C858D-28E0-45DB-ADAA0F83E57CC560 */ +#define XR_CODEC_GUID_PNG \ + "\x8D\x85\x0C\x0E\xE0\x28\xDB\x45\xAD\xAA\x0F\x83\xE5\x7C\xC5\x60" + +/* PDU Types (2.2.8.1.1.1.1) */ +#define PDUTYPE_DEMANDACTIVEPDU 0x1 +#define PDUTYPE_CONFIRMACTIVEPDU 0x3 +#define PDUTYPE_DEACTIVATEALLPDU 0x6 +#define PDUTYPE_DATAPDU 0x7 +#define PDUTYPE_SERVER_REDIR_PKT 0xA + +/* Share Data Header: pduType2 (2.2.8.1.1.1.2) */ +/* TODO: to be renamed */ +#define RDP_DATA_PDU_UPDATE 2 /* PDUTYPE2_UPDATE */ +#define RDP_DATA_PDU_CONTROL 20 +#define RDP_DATA_PDU_POINTER 27 +#define RDP_DATA_PDU_INPUT 28 +#define RDP_DATA_PDU_SYNCHRONISE 31 +#define PDUTYPE2_REFRESH_RECT 33 +#define RDP_DATA_PDU_PLAY_SOUND 34 +#define RDP_DATA_PDU_LOGON 38 +#define RDP_DATA_PDU_FONT2 39 +#define RDP_DATA_PDU_DISCONNECT 47 + +/* TS_SECURITY_HEADER: flags (2.2.8.1.1.2.1) */ +/* TODO: to be renamed */ +#define SEC_CLIENT_RANDOM 0x0001 /* SEC_EXCHANGE_PKT? */ +#define SEC_ENCRYPT 0x0008 +#define SEC_LOGON_INFO 0x0040 /* SEC_INFO_PKT */ +#define SEC_LICENCE_NEG 0x0080 /* SEC_LICENSE_PKT */ + +#define SEC_TAG_SRV_INFO 0x0c01 /* SC_CORE */ +#define SEC_TAG_SRV_CRYPT 0x0c02 /* SC_SECURITY */ +#define SEC_TAG_SRV_CHANNELS 0x0c03 /* SC_NET? */ + +/* Slow-Path Input Event: messageType (2.2.8.1.1.3.1.1) */ +/* TODO: to be renamed */ +#define RDP_INPUT_SYNCHRONIZE 0 +#define RDP_INPUT_CODEPOINT 1 +#define RDP_INPUT_VIRTKEY 2 +#define RDP_INPUT_SCANCODE 4 +#define RDP_INPUT_UNICODE 5 +#define RDP_INPUT_MOUSE 0x8001 +#define RDP_INPUT_MOUSEX 0x8002 + +/* Keyboard Event: keyboardFlags (2.2.8.1.1.3.1.1.1) */ +/* TODO: to be renamed */ +#define KBD_FLAG_RIGHT 0x0001 +#define KBD_FLAG_EXT 0x0100 /* KBDFLAGS_EXTENDED */ +#define KBD_FLAG_QUIET 0x1000 +#define KBD_FLAG_DOWN 0x4000 +#define KBD_FLAG_UP 0x8000 + +/* Mouse Event: pointerFlags (2.2.8.1.1.3.1.1.3) */ +#define PTRFLAGS_HWHEEL 0x0400 +#define PTRFLAGS_WHEEL 0x0200 +#define PTRFLAGS_WHEEL_NEGATIVE 0x0100 +#define WheelRotationMask 0x01FF +#define PTRFLAGS_MOVE 0x0800 +#define PTRFLAGS_DOWN 0x8000 +#define PTRFLAGS_BUTTON1 0x1000 +#define PTRFLAGS_BUTTON2 0x2000 +#define PTRFLAGS_BUTTON3 0x4000 + +/* Extended Mouse Event: pointerFlags (2.2.8.1.1.3.1.1.4) */ +#define PTRXFLAGS_DOWN 0x8000 +#define PTRXFLAGS_BUTTON1 0x0001 +#define PTRXFLAGS_BUTTON2 0x0002 + +/* Synchronize Event: toggleFlags (2.2.8.1.1.3.1.1.5) */ +/* TODO: to be renamed */ +#define KBD_FLAG_SCROLL 0x0001 /* TS_SYNC_SCROLL_LOCK */ +#define KBD_FLAG_NUMLOCK 0x0002 +#define KBD_FLAG_CAPITAL 0x0004 +#define TS_SYNC_KANA_LOCK 0x0008 + +/* Client Fast-Path Input Event PDU 2.2.8.1.2 */ +#define FASTPATH_INPUT_ENCRYPTED 0x2 + +/* Fast-Path Input Event: eventCode (2.2.8.1.2.2) */ +#define FASTPATH_INPUT_EVENT_SCANCODE 0x0 +#define FASTPATH_INPUT_EVENT_MOUSE 0x1 +#define FASTPATH_INPUT_EVENT_MOUSEX 0x2 +#define FASTPATH_INPUT_EVENT_SYNC 0x3 +#define FASTPATH_INPUT_EVENT_UNICODE 0x4 +#define FASTPATH_INPUT_EVENT_QOE_TIMESTAMP 0x6 + +/* Fast-Path Keyboard Event: eventHeader (2.2.8.1.2.2.1) */ +#define FASTPATH_INPUT_KBDFLAGS_RELEASE 0x01 +#define FASTPATH_INPUT_KBDFLAGS_EXTENDED 0x02 +#define FASTPATH_INPUT_KBDFLAGS_EXTENDED1 0x04 + +/* Slow-Path Graphics Update: updateType (2.2.9.1.1.3.1) */ +/* TODO: to be renamed */ +#define RDP_UPDATE_ORDERS 0 +#define RDP_UPDATE_BITMAP 1 +#define RDP_UPDATE_PALETTE 2 +#define RDP_UPDATE_SYNCHRONIZE 3 + +/* Server Pointer Update PDU: messageType (2.2.9.1.1.4) */ +/* TODO: to be renamed */ +#define RDP_POINTER_SYSTEM 1 /* TS_PTRMSGTYPE_SYSTEM */ +#define RDP_POINTER_MOVE 3 +#define RDP_POINTER_COLOR 6 +#define RDP_POINTER_CACHED 7 +#define RDP_POINTER_POINTER 8 + +/* System Pointer Update: systemPointerType (2.2.9.1.1.4.3) */ +#define RDP_NULL_POINTER 0 +#define RDP_DEFAULT_POINTER 0x7F00 + +/* Server Fast-Path Update PDU: action (2.2.9.1.2) */ +#define FASTPATH_OUTPUT_ACTION_FASTPATH 0x0 +#define FASTPATH_OUTPUT_ACTION_X224 0x3 + +/* Server Fast-Path Update PDU: flags (2.2.9.1.2) */ +#define FASTPATH_OUTPUT_SECURE_CHECKSUM 0x1 +#define FASTPATH_OUTPUT_ENCRYPTED 0x2 + +/* Fast-Path Update: updateCode (2.2.9.1.2.1) */ +#define FASTPATH_UPDATETYPE_ORDERS 0x0 +#define FASTPATH_UPDATETYPE_BITMAP 0x1 +#define FASTPATH_UPDATETYPE_PALETTE 0x2 +#define FASTPATH_UPDATETYPE_SYNCHRONIZE 0x3 +#define FASTPATH_UPDATETYPE_SURFCMDS 0x4 +#define FASTPATH_UPDATETYPE_PTR_NULL 0x5 +#define FASTPATH_UPDATETYPE_PTR_DEFAULT 0x6 +#define FASTPATH_UPDATETYPE_PTR_POSITION 0x8 +#define FASTPATH_UPDATETYPE_COLOR 0x9 +#define FASTPATH_UPDATETYPE_CACHED 0xA +#define FASTPATH_UPDATETYPE_POINTER 0xB + +/* Fast-Path Update: fragmentation (2.2.9.1.2.1) */ +#define FASTPATH_FRAGMENT_SINGLE 0x0 +#define FASTPATH_FRAGMENT_LAST 0x1 +#define FASTPATH_FRAGMENT_FIRST 0x2 +#define FASTPATH_FRAGMENT_NEXT 0x3 +#define FASTPATH_OUTPUT_COMPRESSION_USED 0x2 + +/* Surface Command Type (2.2.9.1.2.1.10.1) */ +#define CMDTYPE_SET_SURFACE_BITS 0x0001 +#define CMDTYPE_FRAME_MARKER 0x0004 +#define CMDTYPE_STREAM_SURFACE_BITS 0x0006 + +/* Compression Flags (3.1.8.2.1) */ +/* TODO: to be renamed, not used anywhere */ +#define RDP_MPPC_COMPRESSED 0x20 +#define RDP_MPPC_RESET 0x40 +#define RDP_MPPC_FLUSH 0x80 +#define RDP_MPPC_DICT_SIZE 8192 /* RDP 4.0 | MS-RDPBCGR 3.1.8 */ + +#endif /* MS_RDPBCGR_H */ diff --git a/sesman/chansrv/ms-rdpefs.h b/common/ms-rdpefs.h similarity index 99% rename from sesman/chansrv/ms-rdpefs.h rename to common/ms-rdpefs.h index dc5fe3fe..6f2991af 100644 --- a/sesman/chansrv/ms-rdpefs.h +++ b/common/ms-rdpefs.h @@ -121,5 +121,3 @@ enum IRP_MN #endif /* MS_RDPEFS_H */ - - diff --git a/common/ms-rdpegdi.h b/common/ms-rdpegdi.h new file mode 100644 index 00000000..5f8d909f --- /dev/null +++ b/common/ms-rdpegdi.h @@ -0,0 +1,59 @@ +/** + * xrdp: A Remote Desktop Protocol server. + * + * MS-RDPEGDI : Definitions from [MS-RDPEGDI] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * References to MS-RDPEGDI are currently correct for v20180912 of that + * document + */ + +#if !defined(MS_RDPEGDI_H) +#define MS_RDPEGDI_H + +/* Drawing Order: controlFlags (2.2.2.2.1, 2.2.2.2.1.1.2) */ +#define TS_STANDARD 0x01 +#define TS_SECONDARY 0x02 +#define TS_BOUNDS 0x04 +#define TS_TYPE_CHANGE 0x08 +#define TS_DELTA_COORDINATES 0x10 +#define TS_ZERO_BOUNDS_DELTAS 0x20 +#define TS_ZERO_FIELD_BYTE_BIT0 0x40 +#define TS_ZERO_FIELD_BYTE_BIT1 0x80 + +/* Drawing Order: orderType (2.2.2.2.1.1.2) */ +/* Should be renamed */ +#define RDP_ORDER_DESTBLT 0 /* TS_ENC_DSTBLT_ORDER */ +#define RDP_ORDER_PATBLT 1 +#define RDP_ORDER_SCREENBLT 2 +#define RDP_ORDER_LINE 9 +#define RDP_ORDER_RECT 10 +#define RDP_ORDER_DESKSAVE 11 +#define RDP_ORDER_MEMBLT 13 +#define RDP_ORDER_TRIBLT 14 +#define RDP_ORDER_POLYLINE 22 +#define RDP_ORDER_TEXT2 27 +#define RDP_ORDER_COMPOSITE 37 /* 0x25 - not defined in RDPEGDI */ + +/* Secondary Drawing Order Header: orderType (2.2.2.2.1.2.1.1) */ +#define TS_CACHE_BITMAP_UNCOMPRESSED 0x00 +#define TS_CACHE_COLOR_TABLE 0x01 +#define TS_CACHE_BITMAP_COMPRESSED 0x02 +#define TS_CACHE_GLYPH 0x03 +#define TS_CACHE_BITMAP_UNCOMPRESSED_REV2 0x04 +#define TS_CACHE_BITMAP_COMPRESSED_REV2 0x05 +#define TS_CACHE_BRUSH 0x07 +#define TS_CACHE_BITMAP_COMPRESSED_REV3 0x08 + +#endif /* MS_RDPEGDI_H */ diff --git a/common/ms-rdpele.h b/common/ms-rdpele.h new file mode 100644 index 00000000..845efe32 --- /dev/null +++ b/common/ms-rdpele.h @@ -0,0 +1,36 @@ +/** + * xrdp: A Remote Desktop Protocol server. + * + * MS-RDPELE : Definitions from [MS-RDPELE] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * References to MS-RDPELE are currently correct for v20180912 of that + * document + */ + +#if !defined(MS_RDPELE_H) +#define MS_RDPELE_H + +/* LicensingMessage (MS-RDPELE 2.2.2) */ +/* TODO: to be renamed */ +#define LICENCE_TAG_DEMAND 0x01 /* LICNSE_REQUEST */ +#define LICENCE_TAG_AUTHREQ 0x02 /* PLATFORM_CHALLENGE */ +#define LICENCE_TAG_ISSUE 0x03 /* NEW_LICENSE */ +#define LICENCE_TAG_REISSUE 0x04 /* UPGRADE_LICENSE */ +#define LICENCE_TAG_PRESENT 0x12 /* LICENSE_INFO */ +#define LICENCE_TAG_REQUEST 0x13 /* NEW_LICENSE_REQUEST */ +#define LICENCE_TAG_AUTHRESP 0x15 /* PLATFORM_CHALLENGE_RESPONSE */ +#define LICENCE_TAG_RESULT 0xff + +#endif /* MS_RDPELE_H */ diff --git a/common/ms-rdperp.h b/common/ms-rdperp.h new file mode 100644 index 00000000..369e0b1f --- /dev/null +++ b/common/ms-rdperp.h @@ -0,0 +1,31 @@ +/** + * xrdp: A Remote Desktop Protocol server. + * + * MS-RDPERP : Definitions from [MS-RDPERP] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * References to MS-RDPERP are currently correct for v20190923 of that + * document + */ + +#if !defined(MS_RDPERP_H) +#define MS_RDPERP_H + +/* Window List Capability Set: WndSupportLevel (2.2.1.1.2) */ +#define TS_WINDOW_LEVEL_NOT_SUPPORTED 0x00000000 +#define TS_WINDOW_LEVEL_SUPPORTED 0x00000001 +#define TS_WINDOW_LEVEL_SUPPORTED_EX 0x00000002 + + +#endif /* MS_RDPERP_H */ diff --git a/sesman/chansrv/ms-smb2.h b/common/ms-smb2.h similarity index 100% rename from sesman/chansrv/ms-smb2.h rename to common/ms-smb2.h diff --git a/common/xrdp_constants.h b/common/xrdp_constants.h index 28a2608e..850a95f4 100644 --- a/common/xrdp_constants.h +++ b/common/xrdp_constants.h @@ -29,6 +29,12 @@ * * xrdp constants * + * Constants defined in publically available Microsoft documents are not + * stored here, but are stored in the include files ms-*.h, where the name + * of the file is the name of the document defining the constant. + * + * So for example, NTSTATUS values found in [MS-ERREF] are found in + * ms-erref.h ******************************************************************************/ #define INFO_CLIENT_NAME_BYTES 32 @@ -60,542 +66,6 @@ #define MCS_SDRQ 25 /* Send Data Request */ #define MCS_SDIN 26 /* Send Data Indication */ -/* - * Constants come from Remote Desktop Protocol - */ - -/* RDP Security Negotiation codes */ -#define RDP_NEG_REQ 0x01 /* MS-RDPBCGR 2.2.1.1.1 */ -#define RDP_NEG_RSP 0x02 /* MS-RDPBCGR 2.2.1.2.1 */ -#define RDP_NEG_FAILURE 0x03 /* MS-RDPBCGR 2.2.1.2.2 */ -#define RDP_CORRELATION_INFO 0x06 /* MS-RDPBCGR 2.2.1.1.2 */ - -/* Protocol types codes (MS-RDPBCGR 2.2.1.1.1) */ -#define PROTOCOL_RDP 0x00000000 -#define PROTOCOL_SSL 0x00000001 -#define PROTOCOL_HYBRID 0x00000002 -#define PROTOCOL_RDSTLS 0x00000004 -#define PROTOCOL_HYBRID_EX 0x00000008 - -/* Negotiation packet flags (MS-RDPBCGR 2.2.1.2.1) */ -#define EXTENDED_CLIENT_DATA_SUPPORTED 0x01 -#define DYNVC_GFX_PROTOCOL_SUPPORTED 0x02 -#define NEGRSP_RESERVED 0x04 -#define RESTRICTED_ADMIN_MODE_SUPPORTED 0x08 -#define REDIRECTED_AUTHENTICATION_MODE_SUPPORTED 0x10 - -/* RDP Negotiation Failure Codes (MS-RDPBCGR 2.2.1.2.2) */ -#define SSL_REQUIRED_BY_SERVER 0x00000001 -#define SSL_NOT_ALLOWED_BY_SERVER 0x00000002 -#define SSL_CERT_NOT_ON_SERVER 0x00000003 -#define INCONSISTENT_FLAGS 0x00000004 -#define HYBRID_REQUIRED_BY_SERVER 0x00000005 -#define SSL_WITH_USER_AUTH_REQUIRED_BY_SERVER 0x00000006 - -/* Client Core Data: connectionType (MS-RDPBCGR 2.2.1.3.2) */ -#define CONNECTION_TYPE_MODEM 0x01 -#define CONNECTION_TYPE_BROADBAND_LOW 0x02 -#define CONNECTION_TYPE_SATELLITE 0x03 -#define CONNECTION_TYPE_BROADBAND_HIGH 0x04 -#define CONNECTION_TYPE_WAN 0x05 -#define CONNECTION_TYPE_LAN 0x06 -#define CONNECTION_TYPE_AUTODETECT 0x07 - -/* Client Core Data: colorDepth, postBeta2ColorDepth (MS-RDPBCGR 2.2.1.3.2) */ -#define RNS_UD_COLOR_4BPP 0xCA00 -#define RNS_UD_COLOR_8BPP 0xCA01 -#define RNS_UD_COLOR_16BPP_555 0xCA02 -#define RNS_UD_COLOR_16BPP_565 0xCA03 -#define RNS_UD_COLOR_24BPP 0xCA04 - -/* Slow-Path Input Event: messageType (MS-RDPBCGR 2.2.8.1.1.3.1.1) */ -/* TODO: to be renamed */ -#define RDP_INPUT_SYNCHRONIZE 0 -#define RDP_INPUT_CODEPOINT 1 -#define RDP_INPUT_VIRTKEY 2 -#define RDP_INPUT_SCANCODE 4 -#define RDP_INPUT_UNICODE 5 -#define RDP_INPUT_MOUSE 0x8001 -#define RDP_INPUT_MOUSEX 0x8002 - -#define FASTPATH_INPUT_ENCRYPTED 0x2 - -/* Fast-Path Input Event: eventCode (MS-RDPBCGR 2.2.8.1.2.2) */ -#define FASTPATH_INPUT_EVENT_SCANCODE 0x0 -#define FASTPATH_INPUT_EVENT_MOUSE 0x1 -#define FASTPATH_INPUT_EVENT_MOUSEX 0x2 -#define FASTPATH_INPUT_EVENT_SYNC 0x3 -#define FASTPATH_INPUT_EVENT_UNICODE 0x4 -#define FASTPATH_INPUT_EVENT_QOE_TIMESTAMP 0x6 - -/* Fast-Path Keyboard Event: eventHeader (MS-RDPBCGR 2.2.8.2.2.1) */ -#define FASTPATH_INPUT_KBDFLAGS_RELEASE 0x01 -#define FASTPATH_INPUT_KBDFLAGS_EXTENDED 0x02 -#define FASTPATH_INPUT_KBDFLAGS_EXTENDED1 0x04 - -/* Server Fast-Path Update PDU: action (MS-RDPBCGR 2.2.0.1.2) */ -#define FASTPATH_OUTPUT_ACTION_FASTPATH 0x0 -#define FASTPATH_OUTPUT_ACTION_X224 0x3 - -/* Server Fast-Path Update PDU: flags (MS-RDPBCGR 2.2.0.1.2) */ -#define FASTPATH_OUTPUT_ACTION_FASTPATH 0x0 -#define FASTPATH_OUTPUT_SECURE_CHECKSUM 0x1 -#define FASTPATH_OUTPUT_ENCRYPTED 0x2 - -/* Fast-Path Update: updateCode (MS-RDPBCGR 2.2.9.1.2.1) */ -#define FASTPATH_UPDATETYPE_ORDERS 0x0 -#define FASTPATH_UPDATETYPE_BITMAP 0x1 -#define FASTPATH_UPDATETYPE_PALETTE 0x2 -#define FASTPATH_UPDATETYPE_SYNCHRONIZE 0x3 -#define FASTPATH_UPDATETYPE_SURFCMDS 0x4 -#define FASTPATH_UPDATETYPE_PTR_NULL 0x5 -#define FASTPATH_UPDATETYPE_PTR_DEFAULT 0x6 -#define FASTPATH_UPDATETYPE_PTR_POSITION 0x8 -#define FASTPATH_UPDATETYPE_COLOR 0x9 -#define FASTPATH_UPDATETYPE_CACHED 0xA -#define FASTPATH_UPDATETYPE_POINTER 0xB - -/* Fast-Path Update: fragmentation (MS-RDPBCGR 2.2.9.1.2.1) */ -#define FASTPATH_FRAGMENT_SINGLE 0x0 -#define FASTPATH_FRAGMENT_LAST 0x1 -#define FASTPATH_FRAGMENT_FIRST 0x2 -#define FASTPATH_FRAGMENT_NEXT 0x3 -#define FASTPATH_OUTPUT_COMPRESSION_USED 0x2 - -/* Mouse Event: pointerFlags (MS-RDPBCGR 2.2.8.1.1.3.1.1.3) */ -#define PTRFLAGS_HWHEEL 0x0400 -#define PTRFLAGS_WHEEL 0x0200 -#define PTRFLAGS_WHEEL_NEGATIVE 0x0100 -#define WheelRotationMask 0x01FF -#define PTRFLAGS_MOVE 0x0800 -#define PTRFLAGS_DOWN 0x8000 -#define PTRFLAGS_BUTTON1 0x1000 -#define PTRFLAGS_BUTTON2 0x2000 -#define PTRFLAGS_BUTTON3 0x4000 - -/* Extended Mouse Event: pointerFlags (MS-RDPBCGR 2.2.8.1.1.3.1.1.4) */ -#define PTRXFLAGS_DOWN 0x8000 -#define PTRXFLAGS_BUTTON1 0x0001 -#define PTRXFLAGS_BUTTON2 0x0002 - -/* General Capability Set: osMajorType (MS-RDPBCGR 2.2.7.1.1) */ -#define OSMAJORTYPE_UNSPECIFIED 0x0000 -#define OSMAJORTYPE_WINDOWS 0x0001 -#define OSMAJORTYPE_OS2 0x0002 -#define OSMAJORTYPE_MACINTOSH 0x0003 -#define OSMAJORTYPE_UNIX 0x0004 -#define OSMAJORTYPE_IOS 0x0005 -#define OSMAJORTYPE_OSX 0x0006 -#define OSMAJORTYPE_ANDROID 0x0007 -#define OSMAJORTYPE_CHROME_OS 0x0008 - -/* General Capability Set: osMinorType (MS-RDPBCGR 2.2.7.1.1) */ -#define OSMINORTYPE_UNSPECIFIED 0x0000 -#define OSMINORTYPE_WINDOWS_31X 0x0001 -#define OSMINORTYPE_WINDOWS_95 0x0002 -#define OSMINORTYPE_WINDOWS_NT 0x0003 -#define OSMINORTYPE_OS2_V21 0x0004 -#define OSMINORTYPE_POWER_PC 0x0005 -#define OSMINORTYPE_MACINTOSH 0x0006 -#define OSMINORTYPE_NATIVE_XSERVER 0x0007 -#define OSMINORTYPE_PSEUDO_XSERVER 0x0008 -#define OSMINORTYPE_WINDOWS_RT 0x0009 - -/* Window List Capability Set: WndSupportLevel (MS-RDPERP 2.2.1.1.2) */ -#define TS_WINDOW_LEVEL_NOT_SUPPORTED 0x00000000 -#define TS_WINDOW_LEVEL_SUPPORTED 0x00000001 -#define TS_WINDOW_LEVEL_SUPPORTED_EX 0x00000002 - -/* Extended Info Packet: performanceFlags (MS-RDPBCGR 2.2.1.11.1.1.1) */ -/* TODO: to be renamed */ -#define RDP5_DISABLE_NOTHING 0x00 -#define RDP5_NO_WALLPAPER 0x01 -#define RDP5_NO_FULLWINDOWDRAG 0x02 -#define RDP5_NO_MENUANIMATIONS 0x04 -#define RDP5_NO_THEMING 0x08 -#define RDP5_NO_CURSOR_SHADOW 0x20 -#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ - -/* Virtual channel options */ -/* Channel Definition Structure: options (MS-RDPBCGR 2.2.1.3.4.1) */ -#define REMOTE_CONTROL_PERSISTENT 0x00100000 -/* NOTE: XR_ prefixed to avoid conflict with FreeRDP */ -#define XR_CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 -#define XR_CHANNEL_OPTION_COMPRESS 0x00400000 -#define XR_CHANNEL_OPTION_COMPRESS_RDP 0x00800000 -#define XR_CHANNEL_OPTION_PRI_LOW 0x02000000 -#define XR_CHANNEL_OPTION_PRI_MED 0x04000000 -#define XR_CHANNEL_OPTION_PRI_HIGH 0x08000000 -#define XR_CHANNEL_OPTION_ENCRYPT_CS 0x10000000 -#define XR_CHANNEL_OPTION_ENCRYPT_SC 0x20000000 -#define XR_CHANNEL_OPTION_ENCRYPT_RDP 0x40000000 -#define XR_CHANNEL_OPTION_INITIALIZED 0x80000000 - -/* RDPDR: Device Announce Header: DeviceType (MS-RDPEFS 2.2.1.3) */ -/* TODO: to be renamed */ -#define DEVICE_TYPE_SERIAL 0x01 -#define DEVICE_TYPE_PARALLEL 0x02 -#define DEVICE_TYPE_PRINTER 0x04 -#define DEVICE_TYPE_DISK 0x08 -#define DEVICE_TYPE_SCARD 0x20 - -/* Order Capability Set: orderSupportExFlags (MS-RDPBCGR 2.2.7.1.3) */ -#define XR_ORDERFLAGS_EX_CACHE_BITMAP_REV3_SUPPORT 0x0002 -#define XR_ORDERFLAGS_EX_ALTSEC_FRAME_MARKER_SUPPORT 0x0004 -#define XR_ORDERFLAGS_EX_OFFSCREEN_COMPOSITE_SUPPORT 0x0100 - -/* Order Capability Set: orderSupport (MS-RDPBCGR 2.2.7.1.3) */ -#define TS_NEG_DSTBLT_INDEX 0x00 -#define TS_NEG_PATBLT_INDEX 0x01 -#define TS_NEG_SCRBLT_INDEX 0x02 -#define TS_NEG_MEMBLT_INDEX 0x03 -#define TS_NEG_MEM3BLT_INDEX 0x04 - /* 0x05 */ - /* 0x06 */ -#define TS_NEG_DRAWNINEGRID_INDEX 0x07 -#define TS_NEG_LINETO_INDEX 0x08 -#define TS_NEG_MULTI_DRAWNINEGRID_INDEX 0x09 - /* 0x0A */ -#define TS_NEG_SAVEBITMAP_INDEX 0x0B - /* 0x0C */ - /* 0x0D */ - /* 0x0E */ -#define TS_NEG_MULTIDSTBLT_INDEX 0x0F -#define TS_NEG_MULTIPATBLT_INDEX 0x10 -#define TS_NEG_MULTISCRBLT_INDEX 0x11 -#define TS_NEG_MULTIOPAQUERECT_INDEX 0x12 -#define TS_NEG_FAST_INDEX_INDEX 0x13 -#define TS_NEG_POLYGON_SC_INDEX 0x14 -#define TS_NEG_POLYGON_CB_INDEX 0x15 -#define TS_NEG_POLYLINE_INDEX 0x16 - /* 0x17 */ -#define TS_NEG_FAST_GLYPH_INDEX 0x18 -#define TS_NEG_ELLIPSE_SC_INDEX 0x19 -#define TS_NEG_ELLIPSE_CB_INDEX 0x1A -#define TS_NEG_INDEX_INDEX 0x1B - /* 0x1C */ - /* 0x1D */ - /* 0x1E */ - /* 0x1F */ - -/* General Capability Set: extraFlags (MS-RDPBCGR 2.2.7.1.1) */ -#define TS_CAPS_PROTOCOLVERSION 0x0200 -#define FASTPATH_OUTPUT_SUPPORTED 0x0001 -#define NO_BITMAP_COMPRESSION_HDR 0x0400 -#define LONG_CREDENTIALS_SUPPORTED 0x0004 -#define AUTORECONNECT_SUPPORTED 0x0008 -#define ENC_SALTED_CHECKSUM 0x0010 - -/* Order Capability Set: orderFlags (MS-RDPBCGR 2.2.7.1.3) */ -#define NEGOTIATEORDERSUPPORT 0x0002 -#define ZEROBOUNDSDELTASUPPORT 0x0008 -#define COLORINDEXSUPPORT 0x0020 -#define SOLIDPATTERNBRUSHONLY 0x0040 -#define ORDERFLAGS_EXTRA_FLAGS 0x0080 - -/* Input Capability Set: inputFlags (MS-RDPBCGR 2.2.7.1.6) */ -#define INPUT_FLAG_SCANCODES 0x0001 -#define INPUT_FLAG_MOUSEX 0x0004 -#define INPUT_FLAG_FASTPATH_INPUT 0x0008 -#define INPUT_FLAG_UNICODE 0x0010 -#define INPUT_FLAG_FASTPATH_INPUT2 0x0020 -#define INPUT_FLAG_UNUSED1 0x0040 -#define INPUT_FLAG_UNUSED2 0x0080 -#define TS_INPUT_FLAG_MOUSE_HWHEEL 0x0100 -#define TS_INPUT_FLAG_QOE_TIMESTAMPS 0x0200 - -/* Desktop Composition Capability Set: CompDeskSupportLevel (MS-RDPBCGR 2.2.7.2.8) */ -#define COMPDESK_NOT_SUPPORTED 0x0000 -#define COMPDESK_SUPPORTED 0x0001 - -/* Surface Commands Capability Set: cmdFlags (MS-RDPBCGR 2.2.7.2.9) */ -#define SURFCMDS_SETSURFACEBITS 0x00000002 -#define SURFCMDS_FRAMEMARKER 0x00000010 -#define SURFCMDS_STREAMSUFRACEBITS 0x00000040 - -/* Bitmap Codec: codecGUID (MS-RDPBCGR 2.2.7.2.10.1.1) */ - -/* CODEC_GUID_NSCODEC CA8D1BB9-000F-154F-589FAE2D1A87E2D6 */ -#define XR_CODEC_GUID_NSCODEC \ - "\xb9\x1b\x8d\xca\x0f\x00\x4f\x15\x58\x9f\xae\x2d\x1a\x87\xe2\xd6" - -/* CODEC_GUID_REMOTEFX 76772F12-BD72-4463-AFB3B73C9C6F7886 */ -#define XR_CODEC_GUID_REMOTEFX \ - "\x12\x2F\x77\x76\x72\xBD\x63\x44\xAF\xB3\xB7\x3C\x9C\x6F\x78\x86" - -/* CODEC_GUID_IMAGE_REMOTEFX 2744CCD4-9D8A-4E74-803C-0ECBEEA19C54 */ -#define XR_CODEC_GUID_IMAGE_REMOTEFX \ - "\xD4\xCC\x44\x27\x8A\x9D\x74\x4E\x80\x3C\x0E\xCB\xEE\xA1\x9C\x54" - -/* MFVideoFormat_H264 0x34363248-0000-0010-800000AA00389B71 */ -#define XR_CODEC_GUID_H264 \ - "\x48\x32\x36\x34\x00\x00\x10\x00\x80\x00\x00\xAA\x00\x38\x9B\x71" - -/* CODEC_GUID_JPEG 1BAF4CE6-9EED-430C-869ACB8B37B66237 */ -#define XR_CODEC_GUID_JPEG \ - "\xE6\x4C\xAF\x1B\xED\x9E\x0C\x43\x86\x9A\xCB\x8B\x37\xB6\x62\x37" - -/* CODEC_GUID_PNG 0E0C858D-28E0-45DB-ADAA0F83E57CC560 */ -#define XR_CODEC_GUID_PNG \ - "\x8D\x85\x0C\x0E\xE0\x28\xDB\x45\xAD\xAA\x0F\x83\xE5\x7C\xC5\x60" - -/* Surface Command Type (MS-RDPBCGR 2.2.9.1.2.1.10.1) */ -#define CMDTYPE_SET_SURFACE_BITS 0x0001 -#define CMDTYPE_FRAME_MARKER 0x0004 -#define CMDTYPE_STREAM_SURFACE_BITS 0x0006 - -/* RDP5 disconnect PDU */ -/* Set Error Info PDU Data: errorInfo (MS-RDPBCGR 2.2.5.1.1) */ -/* TODO: to be renamed */ -#define exDiscReasonNoInfo 0x0000 -#define exDiscReasonAPIInitiatedDisconnect 0x0001 -#define exDiscReasonAPIInitiatedLogoff 0x0002 -#define exDiscReasonServerIdleTimeout 0x0003 -#define exDiscReasonServerLogonTimeout 0x0004 -#define exDiscReasonReplacedByOtherConnection 0x0005 -#define exDiscReasonOutOfMemory 0x0006 -#define exDiscReasonServerDeniedConnection 0x0007 -#define exDiscReasonServerDeniedConnectionFips 0x0008 -#define exDiscReasonLicenseInternal 0x0100 -#define exDiscReasonLicenseNoLicenseServer 0x0101 -#define exDiscReasonLicenseNoLicense 0x0102 -#define exDiscReasonLicenseErrClientMsg 0x0103 -#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104 -#define exDiscReasonLicenseErrClientLicense 0x0105 -#define exDiscReasonLicenseCantFinishProtocol 0x0106 -#define exDiscReasonLicenseClientEndedProtocol 0x0107 -#define exDiscReasonLicenseErrClientEncryption 0x0108 -#define exDiscReasonLicenseCantUpgradeLicense 0x0109 -#define exDiscReasonLicenseNoRemoteConnections 0x010a - -/* Info Packet (TS_INFO_PACKET): flags (MS-RDPBCGR 2.2.1.11.1.1) */ -/* TODO: to be renamed */ -#define RDP_LOGON_AUTO 0x0008 -#define RDP_LOGON_NORMAL 0x0033 -#define RDP_COMPRESSION 0x0080 -#define RDP_LOGON_BLOB 0x0100 -#define RDP_LOGON_LEAVE_AUDIO 0x2000 -#define RDP_LOGON_RAIL 0x8000 - -/* Compression Flags (MS-RDPBCGR 3.1.8.2.1) */ -/* TODO: to be renamed, not used anywhere */ -#define RDP_MPPC_COMPRESSED 0x20 -#define RDP_MPPC_RESET 0x40 -#define RDP_MPPC_FLUSH 0x80 -#define RDP_MPPC_DICT_SIZE 8192 /* RDP 4.0 | MS-RDPBCGR 3.1.8 */ - -/* Drawing Order: controlFlags (MS-RDPEGDI 2.2.2.2.1, ) */ -#define TS_STANDARD 0x01 -#define TS_SECONDARY 0x02 -#define TS_BOUNDS 0x04 -#define TS_TYPE_CHANGE 0x08 -#define TS_DELTA_COORDINATES 0x10 -#define TS_ZERO_BOUNDS_DELTAS 0x20 -#define TS_ZERO_FIELD_BYTE_BIT0 0x40 -#define TS_ZERO_FIELD_BYTE_BIT1 0x80 - -/* Drawing Order: orderType (MS-RDPEGDI 2.2.2.2.1.1.2) ? */ -#define RDP_ORDER_DESTBLT 0 -#define RDP_ORDER_PATBLT 1 -#define RDP_ORDER_SCREENBLT 2 -#define RDP_ORDER_LINE 9 -#define RDP_ORDER_RECT 10 -#define RDP_ORDER_DESKSAVE 11 -#define RDP_ORDER_MEMBLT 13 -#define RDP_ORDER_TRIBLT 14 -#define RDP_ORDER_POLYLINE 22 -#define RDP_ORDER_TEXT2 27 -#define RDP_ORDER_COMPOSITE 37 /* 0x25 */ - -/* Secondary Drawing Order Header: orderType (MS-RDPEGDI 2.2.2.2.1.2.1.1) */ -#define TS_CACHE_BITMAP_UNCOMPRESSED 0x00 -#define TS_CACHE_COLOR_TABLE 0x01 -#define TS_CACHE_BITMAP_COMPRESSED 0x02 -#define TS_CACHE_GLYPH 0x03 -#define TS_CACHE_BITMAP_UNCOMPRESSED_REV2 0x04 -#define TS_CACHE_BITMAP_COMPRESSED_REV2 0x05 -#define TS_CACHE_BRUSH 0x07 -#define TS_CACHE_BITMAP_COMPRESSED_REV3 0x08 - -/* Maps to generalCapabilitySet in T.128 page 138 */ - -/* Capability Set: capabilitySetType (MS-RDPBCGR 2.2.1.13.1.1.1) */ -#define CAPSTYPE_GENERAL 0x0001 -#define CAPSTYPE_GENERAL_LEN 0x18 - -#define CAPSTYPE_BITMAP 0x0002 -#define CAPSTYPE_BITMAP_LEN 0x1C - -#define CAPSTYPE_ORDER 0x0003 -#define CAPSTYPE_ORDER_LEN 0x58 -#define ORDER_CAP_NEGOTIATE 2 /* NEGOTIATEORDERSUPPORT? not used */ -#define ORDER_CAP_NOSUPPORT 4 /* not used */ - -#define CAPSTYPE_BITMAPCACHE 0x0004 -#define CAPSTYPE_BITMAPCACHE_LEN 0x28 - -#define CAPSTYPE_CONTROL 0x0005 -#define CAPSTYPE_CONTROL_LEN 0x0C - -#define CAPSTYPE_ACTIVATION 0x0007 -#define CAPSTYPE_ACTIVATION_LEN 0x0C - -#define CAPSTYPE_POINTER 0x0008 -#define CAPSTYPE_POINTER_LEN 0x0a -#define CAPSTYPE_POINTER_MONO_LEN 0x08 - -#define CAPSTYPE_SHARE 0x0009 -#define CAPSTYPE_SHARE_LEN 0x08 - -#define CAPSTYPE_COLORCACHE 0x000A -#define CAPSTYPE_COLORCACHE_LEN 0x08 - -#define CAPSTYPE_SOUND 0x000C - -#define CAPSTYPE_INPUT 0x000D -#define CAPSTYPE_INPUT_LEN 0x58 - -#define CAPSTYPE_FONT 0x000E -#define CAPSTYPE_FONT_LEN 0x04 - -#define CAPSTYPE_BRUSH 0x000F -#define CAPSTYPE_BRUSH_LEN 0x08 - -#define CAPSTYPE_GLYPHCACHE 0x0010 -#define CAPSTYPE_OFFSCREENCACHE 0x0011 - -#define CAPSTYPE_BITMAPCACHE_HOSTSUPPORT 0x0012 -#define CAPSTYPE_BITMAPCACHE_HOSTSUPPORT_LEN 0x08 - -#define CAPSTYPE_BITMAPCACHE_REV2 0x0013 -#define CAPSTYPE_BITMAPCACHE_REV2_LEN 0x28 -#define BMPCACHE2_FLAG_PERSIST ((long)1<<31) - -#define CAPSTYPE_VIRTUALCHANNEL 0x0014 -#define CAPSTYPE_VIRTUALCHANNEL_LEN 0x08 - -#define CAPSTYPE_DRAWNINGRIDCACHE 0x0015 -#define CAPSTYPE_DRAWGDIPLUS 0x0016 -#define CAPSTYPE_RAIL 0x0017 -#define CAPSTYPE_WINDOW 0x0018 - -#define CAPSSETTYPE_COMPDESK 0x0019 -#define CAPSSETTYPE_COMPDESK_LEN 0x06 - -#define CAPSSETTYPE_MULTIFRAGMENTUPDATE 0x001A -#define CAPSSETTYPE_MULTIFRAGMENTUPDATE_LEN 0x08 - -#define CAPSETTYPE_LARGE_POINTER 0x001B -#define CAPSETTYPE_LARGE_POINTER_LEN 0x06 - -#define CAPSETTYPE_SURFACE_COMMANDS 0x001C -#define CAPSETTYPE_SURFACE_COMMANDS_LEN 0x0C - -#define CAPSSETTYPE_BITMAP_CODECS 0x001D -#define CAPSSETTYPE_BITMAP_CODECS_LEN 0x1C - -#define CAPSTYPE_FRAME_ACKNOWLEDGE 0x001E -#define CAPSTYPE_FRAME_ACKNOWLEDGE_LEN 0x08 - -/* TS_SECURITY_HEADER: flags (MS-RDPBCGR 2.2.8.1.1.2.1) */ -/* TODO: to be renamed */ -#define SEC_CLIENT_RANDOM 0x0001 /* SEC_EXCHANGE_PKT? */ -#define SEC_ENCRYPT 0x0008 -#define SEC_LOGON_INFO 0x0040 /* SEC_INFO_PKT */ -#define SEC_LICENCE_NEG 0x0080 /* SEC_LICENSE_PKT */ - -#define SEC_TAG_SRV_INFO 0x0c01 /* SC_CORE */ -#define SEC_TAG_SRV_CRYPT 0x0c02 /* SC_SECURITY */ -#define SEC_TAG_SRV_CHANNELS 0x0c03 /* SC_NET? */ - -/* TS_UD_HEADER: type (MS-RDPBCGR (2.2.1.3.1) */ -/* TODO: to be renamed */ -#define SEC_TAG_CLI_INFO 0xc001 /* CS_CORE? */ -#define SEC_TAG_CLI_CRYPT 0xc002 /* CS_SECURITY? */ -#define SEC_TAG_CLI_CHANNELS 0xc003 /* CS_CHANNELS? */ -#define SEC_TAG_CLI_4 0xc004 /* CS_CLUSTER? */ -#define SEC_TAG_CLI_MONITOR 0xc005 /* CS_MONITOR */ - -/* Server Proprietary Certificate (MS-RDPBCGR 2.2.1.4.3.1.1) */ -/* TODO: to be renamed */ -#define SEC_TAG_PUBKEY 0x0006 /* BB_RSA_KEY_BLOB */ -#define SEC_TAG_KEYSIG 0x0008 /* BB_SIGNATURE_KEY_BLOB */ - -/* LicensingMessage (MS-RDPELE 2.2.2) */ -/* TODO: to be renamed */ -#define LICENCE_TAG_DEMAND 0x01 /* LICNSE_REQUEST */ -#define LICENCE_TAG_AUTHREQ 0x02 /* PLATFORM_CHALLENGE */ -#define LICENCE_TAG_ISSUE 0x03 /* NEW_LICENSE */ -#define LICENCE_TAG_REISSUE 0x04 /* UPGRADE_LICENSE */ -#define LICENCE_TAG_PRESENT 0x12 /* LICENSE_INFO */ -#define LICENCE_TAG_REQUEST 0x13 /* NEW_LICENSE_REQUEST */ -#define LICENCE_TAG_AUTHRESP 0x15 /* PLATFORM_CHALLENGE_RESPONSE */ -#define LICENCE_TAG_RESULT 0xff - -/* LICENSE_BINARY_BLOB (MS-RDPBCGR 2.2.1.12.1.2) */ -#define LICENCE_TAG_USER 0x000f /* BB_CLIENT_USER_NAME_BLOB */ -#define LICENCE_TAG_HOST 0x0010 /* BB_CLIENT_MACHINE_NAME_BLOB */ - -/* Share Data Header: pduType2 (MS-RDPBCGR 2.2.8.1.1.1.2) */ -/* TODO: to be renamed */ -#define RDP_DATA_PDU_UPDATE 2 /* PDUTYPE2_UPDATE */ -#define RDP_DATA_PDU_CONTROL 20 -#define RDP_DATA_PDU_POINTER 27 -#define RDP_DATA_PDU_INPUT 28 -#define RDP_DATA_PDU_SYNCHRONISE 31 -#define PDUTYPE2_REFRESH_RECT 33 -#define RDP_DATA_PDU_PLAY_SOUND 34 -#define RDP_DATA_PDU_LOGON 38 -#define RDP_DATA_PDU_FONT2 39 -#define RDP_DATA_PDU_DISCONNECT 47 - -/* Control PDU Data: action (MS-RDPBCGR 2.2.1.15.1) */ -/* TODO: to be renamed */ -#define RDP_CTL_REQUEST_CONTROL 1 /* CTRLACTION_REQUEST_CONTROL */ -#define RDP_CTL_GRANT_CONTROL 2 -#define RDP_CTL_DETACH 3 -#define RDP_CTL_COOPERATE 4 - -/* Slow-Path Graphics Update: updateType (MS-RDPBCGR 2.2.9.1.1.3.1) */ -/* TODO: to be renamed */ -#define RDP_UPDATE_ORDERS 0 -#define RDP_UPDATE_BITMAP 1 -#define RDP_UPDATE_PALETTE 2 -#define RDP_UPDATE_SYNCHRONIZE 3 - -/* Server Pointer Update PDU: messageType (MS-RDPBCGR 2.2.9.1.1.4) */ -/* TODO: to be renamed */ -#define RDP_POINTER_SYSTEM 1 /* TS_PTRMSGTYPE_SYSTEM */ -#define RDP_POINTER_MOVE 3 -#define RDP_POINTER_COLOR 6 -#define RDP_POINTER_CACHED 7 -#define RDP_POINTER_POINTER 8 - -/* System Pointer Update: systemPointerType (MS-RDPBCGR 2.2.9.1.1.4.3) */ -#define RDP_NULL_POINTER 0 -#define RDP_DEFAULT_POINTER 0x7F00 - -/* Keyboard Event: keyboardFlags (MS-RDPBCGR 2.2.8.1.1.3.1.1.1) */ -/* TODO: to be renamed */ -#define KBD_FLAG_RIGHT 0x0001 -#define KBD_FLAG_EXT 0x0100 /* KBDFLAGS_EXTENDED */ -#define KBD_FLAG_QUIET 0x1000 -#define KBD_FLAG_DOWN 0x4000 -#define KBD_FLAG_UP 0x8000 - -/* Synchronize Event: toggleFlags (MS-RDPBCGR 2.2.8.1.1.3.1.1.5) */ -/* TODO: to be renamed */ -#define KBD_FLAG_SCROLL 0x0001 /* TS_SYNC_SCROLL_LOCK */ -#define KBD_FLAG_NUMLOCK 0x0002 -#define KBD_FLAG_CAPITAL 0x0004 -#define TS_SYNC_KANA_LOCK 0x0008 - -/* Glyph Cache Capability Set: GlyphSupportLevel (MS-RDPBCGR 2.2.7.1.8) */ -#define GLYPH_SUPPORT_NONE 0x0000 -#define GLYPH_SUPPORT_PARTIAL 0x0001 -#define GLYPH_SUPPORT_FULL 0x0002 -#define GLYPH_SUPPORT_ENCODE 0x0003 - /****************************************************************************** * * Constants come from other Microsoft products @@ -616,33 +86,6 @@ /* NTSTATUS Values (MS-ERREF 2.3.1) */ /* used for RDPDR */ -#define STATUS_SUCCESS 0x00000000 -#define STATUS_PENDING 0x00000103 - -#define STATUS_NO_MORE_FILES 0x80000006 -#define STATUS_DEVICE_PAPER_EMPTY 0x8000000e -#define STATUS_DEVICE_POWERED_OFF 0x8000000f -#define STATUS_DEVICE_OFF_LINE 0x80000010 -#define STATUS_DEVICE_BUSY 0x80000011 - -#define STATUS_INVALID_HANDLE 0xc0000008 -#define STATUS_INVALID_PARAMETER 0xc000000d -#define STATUS_NO_SUCH_FILE 0xc000000f -#define STATUS_INVALID_DEVICE_REQUEST 0xc0000010 -#define STATUS_ACCESS_DENIED 0xc0000022 -#define STATUS_OBJECT_NAME_COLLISION 0xc0000035 -#define STATUS_DISK_FULL 0xc000007f -#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba -#define STATUS_NOT_SUPPORTED 0xc00000bb -#define STATUS_TIMEOUT 0xc0000102 -#define STATUS_CANCELLED 0xc0000120 - -/* MS-SMB2 2.2.13 */ -/* TODO: not used anywhere */ -#define FILE_DIRECTORY_FILE 0x00000001 -#define FILE_NON_DIRECTORY_FILE 0x00000040 -#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 - /* * not yet sorted out */ @@ -672,13 +115,6 @@ #define LICENCE_SIGNATURE_SIZE 16 -/* PDU Types (MS-RDPBCGR 2.2.8.1.1.1.1) */ -#define PDUTYPE_DEMANDACTIVEPDU 0x1 -#define PDUTYPE_CONFIRMACTIVEPDU 0x3 -#define PDUTYPE_DEACTIVATEALLPDU 0x6 -#define PDUTYPE_DATAPDU 0x7 -#define PDUTYPE_SERVER_REDIR_PKT 0xA - /* See T.128 */ /* not used anywhere */ #define RDP_KEYPRESS 0 diff --git a/libxrdp/libxrdp.c b/libxrdp/libxrdp.c index f82ae953..27e2c3b7 100644 --- a/libxrdp/libxrdp.c +++ b/libxrdp/libxrdp.c @@ -25,6 +25,8 @@ #include "libxrdp.h" #include "xrdp_orders_rail.h" +#include "ms-rdpbcgr.h" + #define LOG_LEVEL 1 #define LLOG(_level, _args) \ do { if (_level < LOG_LEVEL) { g_write _args ; } } while (0) diff --git a/libxrdp/xrdp_caps.c b/libxrdp/xrdp_caps.c index 1c0587f5..ead495ca 100644 --- a/libxrdp/xrdp_caps.c +++ b/libxrdp/xrdp_caps.c @@ -24,6 +24,8 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" +#include "ms-rdperp.h" /*****************************************************************************/ static int diff --git a/libxrdp/xrdp_fastpath.c b/libxrdp/xrdp_fastpath.c index ba9e1182..711f2b85 100644 --- a/libxrdp/xrdp_fastpath.c +++ b/libxrdp/xrdp_fastpath.c @@ -22,6 +22,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" /*****************************************************************************/ struct xrdp_fastpath * diff --git a/libxrdp/xrdp_iso.c b/libxrdp/xrdp_iso.c index 469025cc..a53af5ce 100644 --- a/libxrdp/xrdp_iso.c +++ b/libxrdp/xrdp_iso.c @@ -24,6 +24,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" #define LOG_LEVEL 1 diff --git a/libxrdp/xrdp_mcs.c b/libxrdp/xrdp_mcs.c index 8438dbba..832cc408 100644 --- a/libxrdp/xrdp_mcs.c +++ b/libxrdp/xrdp_mcs.c @@ -23,6 +23,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" /*****************************************************************************/ diff --git a/libxrdp/xrdp_orders.c b/libxrdp/xrdp_orders.c index 3d9c833f..4c7e9e8d 100644 --- a/libxrdp/xrdp_orders.c +++ b/libxrdp/xrdp_orders.c @@ -23,6 +23,8 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" +#include "ms-rdpegdi.h" #if defined(XRDP_NEUTRINORDP) #include diff --git a/libxrdp/xrdp_orders_rail.c b/libxrdp/xrdp_orders_rail.c index b6170818..26dab686 100644 --- a/libxrdp/xrdp_orders_rail.c +++ b/libxrdp/xrdp_orders_rail.c @@ -21,6 +21,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpegdi.h" #include "xrdp_rail.h" /* [MS-RDPERP]: Remote Desktop Protocol: diff --git a/libxrdp/xrdp_rdp.c b/libxrdp/xrdp_rdp.c index 351e3674..7950840c 100644 --- a/libxrdp/xrdp_rdp.c +++ b/libxrdp/xrdp_rdp.c @@ -23,6 +23,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" #include "ssl_calls.h" diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c index 31197ab6..c0e513e4 100644 --- a/libxrdp/xrdp_sec.c +++ b/libxrdp/xrdp_sec.c @@ -23,6 +23,7 @@ #endif #include "libxrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" #define LOG_LEVEL 1 diff --git a/sesman/chansrv/Makefile.am b/sesman/chansrv/Makefile.am index cd55df7c..cf1d1f96 100644 --- a/sesman/chansrv/Makefile.am +++ b/sesman/chansrv/Makefile.am @@ -67,10 +67,6 @@ xrdp_chansrv_SOURCES = \ irp.c \ irp.h \ mlog.h \ - ms-erref.h \ - ms-fscc.h \ - ms-rdpefs.h \ - ms-smb2.h \ rail.c \ rail.h \ smartcard.c \ diff --git a/sesman/chansrv/chansrv_fuse.c b/sesman/chansrv/chansrv_fuse.c index 842bca00..d0b574a7 100644 --- a/sesman/chansrv/chansrv_fuse.c +++ b/sesman/chansrv/chansrv_fuse.c @@ -946,14 +946,14 @@ void xfuse_devredir_cb_enum_dir_done(struct state_dirscan *fip, log_debug("fip=%p IoStatus=0x%x", fip, IoStatus); /* - * NT_STATUS_NO_SUCH_FILE is returned for empty directories + * STATUS_NO_SUCH_FILE is returned for empty directories */ - if (IoStatus != NT_STATUS_SUCCESS && IoStatus != NT_STATUS_NO_SUCH_FILE) + if (IoStatus != STATUS_SUCCESS && IoStatus != STATUS_NO_SUCH_FILE) { int status; switch (IoStatus) { - case NT_STATUS_ACCESS_DENIED: + case STATUS_ACCESS_DENIED: status = EACCES; break; default: @@ -994,24 +994,24 @@ void xfuse_devredir_cb_lookup_entry(struct state_lookup *fip, { XFS_INODE *xinode = NULL; - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { switch (IoStatus) { - case NT_STATUS_SHARING_VIOLATION: + case STATUS_SHARING_VIOLATION: /* This can happen when trying to read the attributes of * some system files (e.g. pagefile.sys) */ - case NT_STATUS_ACCESS_DENIED: + case STATUS_ACCESS_DENIED: fuse_reply_err(fip->req, EACCES); break; - case NT_STATUS_UNSUCCESSFUL: + case STATUS_UNSUCCESSFUL: /* Happens if we try to lookup an illegal filename (e.g. * one with a '*' in it) */ fuse_reply_err(fip->req, ENOENT); break; - case NT_STATUS_NO_SUCH_FILE: + case STATUS_NO_SUCH_FILE: /* Remove our copy, if any */ if (fip->existing_inum && (xinode = xfs_get(g_xfs, fip->existing_inum)) != NULL && @@ -1119,20 +1119,20 @@ void xfuse_devredir_cb_setattr(struct state_setattr *fip, { XFS_INODE *xinode; - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { switch (IoStatus) { - case NT_STATUS_SHARING_VIOLATION: + case STATUS_SHARING_VIOLATION: /* This can happen when trying to read the attributes of * some system files (e.g. pagefile.sys) */ - case NT_STATUS_ACCESS_DENIED: + case STATUS_ACCESS_DENIED: fuse_reply_err(fip->req, EACCES); break; - case NT_STATUS_UNSUCCESSFUL: + case STATUS_UNSUCCESSFUL: /* Happens if we try to lookup an illegal filename */ - case NT_STATUS_NO_SUCH_FILE: + case STATUS_NO_SUCH_FILE: fuse_reply_err(fip->req, ENOENT); break; @@ -1167,12 +1167,12 @@ void xfuse_devredir_cb_create_file(struct state_create *fip, { switch (IoStatus) { - case NT_STATUS_ACCESS_DENIED: + case STATUS_ACCESS_DENIED: fuse_reply_err(fip->req, EACCES); break; - case NT_STATUS_OBJECT_NAME_INVALID: - case NT_STATUS_OBJECT_NAME_NOT_FOUND: + case STATUS_OBJECT_NAME_INVALID: + case STATUS_OBJECT_NAME_NOT_FOUND: fuse_reply_err(fip->req, ENOENT); break; @@ -1268,12 +1268,12 @@ void xfuse_devredir_cb_open_file(struct state_open *fip, { switch (IoStatus) { - case NT_STATUS_ACCESS_DENIED: + case STATUS_ACCESS_DENIED: fuse_reply_err(fip->req, EACCES); break; - case NT_STATUS_OBJECT_NAME_INVALID: - case NT_STATUS_OBJECT_NAME_NOT_FOUND: + case STATUS_OBJECT_NAME_INVALID: + case STATUS_OBJECT_NAME_NOT_FOUND: fuse_reply_err(fip->req, ENOENT); break; @@ -1327,7 +1327,7 @@ void xfuse_devredir_cb_write_file( { XFS_INODE *xinode; - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { log_error("Write NTSTATUS is %d", (int) IoStatus); fuse_reply_err(fip->req, EIO); @@ -1361,14 +1361,14 @@ void xfuse_devredir_cb_rmdir_or_file(struct state_remove *fip, switch (IoStatus) { - case NT_STATUS_SUCCESS: - case NT_STATUS_NO_SUCH_FILE: + case STATUS_SUCCESS: + case STATUS_NO_SUCH_FILE: xfs_remove_entry(g_xfs, xinode->inum); /* Remove local copy */ fuse_reply_err(fip->req, 0); break; - case NT_STATUS_SHARING_VIOLATION: - case NT_STATUS_ACCESS_DENIED: + case STATUS_SHARING_VIOLATION: + case STATUS_ACCESS_DENIED: fuse_reply_err(fip->req, EACCES); break; @@ -1385,12 +1385,12 @@ void xfuse_devredir_cb_rename_file(struct state_rename *fip, { int status; - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { status = - (IoStatus == NT_STATUS_SHARING_VIOLATION) ? EBUSY : - (IoStatus == NT_STATUS_ACCESS_DENIED) ? EACCES : - /* default */ EEXIST ; + (IoStatus == STATUS_SHARING_VIOLATION) ? EBUSY : + (IoStatus == STATUS_ACCESS_DENIED) ? EACCES : + /* default */ EEXIST ; } else { diff --git a/sesman/chansrv/devredir.c b/sesman/chansrv/devredir.c index 22cceb5c..49b7ce32 100644 --- a/sesman/chansrv/devredir.c +++ b/sesman/chansrv/devredir.c @@ -951,9 +951,9 @@ devredir_proc_device_iocompletion(struct stream *s) { comp_type = (enum COMPLETION_TYPE) irp->completion_type; /* Log something about the IRP */ - if (IoStatus == NT_STATUS_SUCCESS || - IoStatus == NT_STATUS_NO_MORE_FILES || - (IoStatus == NT_STATUS_NO_SUCH_FILE && comp_type == CID_LOOKUP)) + if (IoStatus == STATUS_SUCCESS || + IoStatus == STATUS_NO_MORE_FILES || + (IoStatus == STATUS_NO_SUCH_FILE && comp_type == CID_LOOKUP)) { /* Successes or common occurrences - debug logging only */ log_debug("got %s", completion_type_to_str(comp_type)); @@ -971,7 +971,7 @@ devredir_proc_device_iocompletion(struct stream *s) switch (comp_type) { case CID_CREATE_DIR_REQ: - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { xfuse_devredir_cb_enum_dir_done( (struct state_dirscan *) irp->fuse_info, IoStatus); @@ -991,7 +991,7 @@ devredir_proc_device_iocompletion(struct stream *s) xfuse_devredir_cb_create_file( (struct state_create *) irp->fuse_info, IoStatus, DeviceId, irp->FileId); - if (irp->gen.create.creating_dir || IoStatus != NT_STATUS_SUCCESS) + if (irp->gen.create.creating_dir || IoStatus != STATUS_SUCCESS) { devredir_irp_delete(irp); } @@ -1002,7 +1002,7 @@ devredir_proc_device_iocompletion(struct stream *s) xfuse_devredir_cb_open_file((struct state_open *) irp->fuse_info, IoStatus, DeviceId, irp->FileId); - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { devredir_irp_delete(irp); } @@ -1082,7 +1082,7 @@ devredir_proc_query_dir_response(IRP *irp, tui32 Length; xstream_rd_u32_le(s_in, Length); - if (IoStatus == NT_STATUS_SUCCESS) + if (IoStatus == STATUS_SUCCESS) { unsigned int i; /* process FILE_DIRECTORY_INFORMATION structures */ @@ -1134,9 +1134,9 @@ devredir_proc_query_dir_response(IRP *irp, } else { - if (IoStatus == NT_STATUS_NO_MORE_FILES) + if (IoStatus == STATUS_NO_MORE_FILES) { - IoStatus = NT_STATUS_SUCCESS; + IoStatus = STATUS_SUCCESS; } xfuse_devredir_cb_enum_dir_done((struct state_dirscan *)irp->fuse_info, IoStatus); @@ -1605,14 +1605,14 @@ devredir_file_write(struct state_write *fusep, tui32 DeviceId, tui32 FileId, if ((irp = devredir_irp_find_by_fileid(FileId)) == NULL) { log_error("no IRP found with FileId = %d", FileId); - xfuse_devredir_cb_write_file(fusep, NT_STATUS_UNSUCCESSFUL, 0, 0); + xfuse_devredir_cb_write_file(fusep, STATUS_UNSUCCESSFUL, 0, 0); xstream_free(s); } /* create a new IRP for this request */ else if ((new_irp = devredir_irp_new()) == NULL) { /* system out of memory */ - xfuse_devredir_cb_write_file(fusep, NT_STATUS_UNSUCCESSFUL, 0, 0); + xfuse_devredir_cb_write_file(fusep, STATUS_UNSUCCESSFUL, 0, 0); xstream_free(s); } else @@ -1824,7 +1824,7 @@ devredir_proc_cid_rmdir_or_file(IRP *irp, enum NTSTATUS IoStatus) struct stream *s; int bytes; - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { xfuse_devredir_cb_rmdir_or_file((struct state_remove *) irp->fuse_info, IoStatus); @@ -1857,7 +1857,7 @@ devredir_proc_cid_rmdir_or_file_resp(IRP *irp, enum NTSTATUS IoStatus) xfuse_devredir_cb_rmdir_or_file((struct state_remove *)irp->fuse_info, IoStatus); - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { devredir_irp_delete(irp); return; @@ -1881,7 +1881,7 @@ devredir_proc_cid_rename_file(IRP *irp, enum NTSTATUS IoStatus) int flen; /* FileNameLength */ - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { log_debug("rename returned with IoStatus=0x%x", IoStatus); @@ -1930,7 +1930,7 @@ devredir_proc_cid_rename_file_resp(IRP *irp, enum NTSTATUS IoStatus) xfuse_devredir_cb_rename_file((struct state_rename *)irp->fuse_info, IoStatus); - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { devredir_irp_delete(irp); return; @@ -2026,7 +2026,7 @@ static void lookup_read_standard_attributes(IRP *irp, struct stream *s_in) /* * Completes a lookup request and returns status to the caller. * - * Unless IoStatus is NT_STATUS_SUCCESS, the lookup has failed. + * Unless IoStatus is STATUS_SUCCESS, the lookup has failed. *****************************************************************************/ static void lookup_done(IRP *irp, enum NTSTATUS IoStatus) { @@ -2067,7 +2067,7 @@ devredir_proc_cid_lookup(IRP *irp, tui32 Length; log_debug("entry state is %d",irp->gen.lookup.state); - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { /* This is common to all setattr states */ log_debug("last lookup returned with IoStatus=0x%08x", IoStatus); @@ -2093,7 +2093,7 @@ devredir_proc_cid_lookup(IRP *irp, log_error("Expected FILE_BASIC_INFORMATION length" "%d, got len=%d", FILE_BASIC_INFORMATION_SIZE, Length); - IoStatus = NT_STATUS_UNSUCCESSFUL; + IoStatus = STATUS_UNSUCCESSFUL; lookup_done(irp, IoStatus); } else @@ -2112,7 +2112,7 @@ devredir_proc_cid_lookup(IRP *irp, log_error("Expected FILE_STD_INFORMATION length" "%d, got len=%d", FILE_STD_INFORMATION_SIZE, Length); - IoStatus = NT_STATUS_UNSUCCESSFUL; + IoStatus = STATUS_UNSUCCESSFUL; } else { @@ -2245,7 +2245,7 @@ devredir_proc_cid_setattr(IRP *irp, tui32 Length; log_debug("entry state is %d",irp->gen.setattr.state); - if (IoStatus != NT_STATUS_SUCCESS) + if (IoStatus != STATUS_SUCCESS) { /* This is common to all setattr states */ log_debug("last setattr returned with IoStatus=0x%08x", IoStatus); diff --git a/xrdp/lang.c b/xrdp/lang.c index ff242599..723883a1 100644 --- a/xrdp/lang.c +++ b/xrdp/lang.c @@ -24,6 +24,7 @@ #endif #include "xrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" /* map for rdp to x11 scancodes diff --git a/xrdp/xrdp_encoder.c b/xrdp/xrdp_encoder.c index 5b5fc8d7..cb44db51 100644 --- a/xrdp/xrdp_encoder.c +++ b/xrdp/xrdp_encoder.c @@ -24,6 +24,7 @@ #include "xrdp_encoder.h" #include "xrdp.h" +#include "ms-rdpbcgr.h" #include "thread_calls.h" #include "fifo.h" diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index f68b11e9..750be55b 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -25,6 +25,7 @@ #include #include #include "xrdp.h" +#include "ms-rdpbcgr.h" #include "log.h" #define LLOG_LEVEL 1