1 |
/* |
/* |
2 |
rdesktop: A Remote Desktop Protocol client. |
rdesktop: A Remote Desktop Protocol client. |
3 |
Miscellaneous protocol constants |
Miscellaneous protocol constants |
4 |
Copyright (C) Matthew Chapman 1999-2002 |
Copyright (C) Matthew Chapman 1999-2005 |
5 |
|
|
6 |
This program is free software; you can redistribute it and/or modify |
This program is free software; you can redistribute it and/or modify |
7 |
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
21 |
/* TCP port for Remote Desktop Protocol */ |
/* TCP port for Remote Desktop Protocol */ |
22 |
#define TCP_PORT_RDP 3389 |
#define TCP_PORT_RDP 3389 |
23 |
|
|
24 |
|
#define DEFAULT_CODEPAGE "UTF-8" |
25 |
|
#define WINDOWS_CODEPAGE "UTF-16LE" |
26 |
|
|
27 |
/* ISO PDU codes */ |
/* ISO PDU codes */ |
28 |
enum ISO_PDU_CODE |
enum ISO_PDU_CODE |
29 |
{ |
{ |
118 |
RDP_DATA_PDU_INPUT = 28, |
RDP_DATA_PDU_INPUT = 28, |
119 |
RDP_DATA_PDU_SYNCHRONISE = 31, |
RDP_DATA_PDU_SYNCHRONISE = 31, |
120 |
RDP_DATA_PDU_BELL = 34, |
RDP_DATA_PDU_BELL = 34, |
121 |
|
RDP_DATA_PDU_CLIENT_WINDOW_STATUS = 35, |
122 |
RDP_DATA_PDU_LOGON = 38, |
RDP_DATA_PDU_LOGON = 38, |
123 |
RDP_DATA_PDU_FONT2 = 39, |
RDP_DATA_PDU_FONT2 = 39, |
124 |
|
RDP_DATA_PDU_KEYBOARD_INDICATORS = 41, |
125 |
RDP_DATA_PDU_DISCONNECT = 47 |
RDP_DATA_PDU_DISCONNECT = 47 |
126 |
}; |
}; |
127 |
|
|
204 |
#define TEXT2_VERTICAL 0x04 |
#define TEXT2_VERTICAL 0x04 |
205 |
#define TEXT2_IMPLICIT_X 0x20 |
#define TEXT2_IMPLICIT_X 0x20 |
206 |
|
|
207 |
|
#define ALTERNATE 1 |
208 |
|
#define WINDING 2 |
209 |
|
|
210 |
|
/* RDP bitmap cache (version 2) constants */ |
211 |
|
#define BMPCACHE2_C0_CELLS 0x78 |
212 |
|
#define BMPCACHE2_C1_CELLS 0x78 |
213 |
|
#define BMPCACHE2_C2_CELLS 0x150 |
214 |
|
#define BMPCACHE2_NUM_PSTCELLS 0x9f6 |
215 |
|
|
216 |
|
#define PDU_FLAG_FIRST 0x01 |
217 |
|
#define PDU_FLAG_LAST 0x02 |
218 |
|
|
219 |
/* RDP capabilities */ |
/* RDP capabilities */ |
220 |
#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */ |
#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */ |
221 |
#define RDP_CAPLEN_GENERAL 0x18 |
#define RDP_CAPLEN_GENERAL 0x18 |
248 |
#define RDP_CAPSET_COLCACHE 10 |
#define RDP_CAPSET_COLCACHE 10 |
249 |
#define RDP_CAPLEN_COLCACHE 0x08 |
#define RDP_CAPLEN_COLCACHE 0x08 |
250 |
|
|
251 |
#define RDP_CAPSET_UNKNOWN 13 |
#define RDP_CAPSET_BMPCACHE2 19 |
252 |
#define RDP_CAPLEN_UNKNOWN 0x9C |
#define RDP_CAPLEN_BMPCACHE2 0x28 |
253 |
|
#define BMPCACHE2_FLAG_PERSIST ((uint32)1<<31) |
254 |
|
|
255 |
#define RDP_SOURCE "MSTSC" |
#define RDP_SOURCE "MSTSC" |
256 |
|
|
257 |
/* Logon flags */ |
/* Logon flags */ |
258 |
#define RDP_LOGON_AUTO 0x0008 |
#define RDP_LOGON_AUTO 0x0008 |
259 |
#define RDP_LOGON_NORMAL 0x0033 |
#define RDP_LOGON_NORMAL 0x0033 |
260 |
#define RDP_COMPRESSION 0x0080 |
#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */ |
261 |
#define RDP_LOGON_BLOB 0x0100 |
#define RDP_LOGON_BLOB 0x0100 |
262 |
|
#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */ |
263 |
#define RDP_LOGON_LEAVE_AUDIO 0x2000 |
#define RDP_LOGON_LEAVE_AUDIO 0x2000 |
264 |
|
|
265 |
#define RDP5_DISABLE_NOTHING 0x00 |
#define RDP5_DISABLE_NOTHING 0x00 |
270 |
#define RDP5_NO_CURSOR_SHADOW 0x20 |
#define RDP5_NO_CURSOR_SHADOW 0x20 |
271 |
#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ |
#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */ |
272 |
|
|
273 |
|
/* compression types */ |
274 |
|
#define RDP_MPPC_BIG 0x01 |
275 |
|
#define RDP_MPPC_COMPRESSED 0x20 |
276 |
|
#define RDP_MPPC_RESET 0x40 |
277 |
|
#define RDP_MPPC_FLUSH 0x80 |
278 |
|
#define RDP_MPPC_DICT_SIZE 65536 |
279 |
|
|
280 |
|
#define RDP5_COMPRESSED 0x80 |
281 |
|
|
282 |
/* Keymap flags */ |
/* Keymap flags */ |
283 |
#define MapRightShiftMask (1<<0) |
#define MapRightShiftMask (1<<0) |
284 |
#define MapLeftShiftMask (1<<1) |
#define MapLeftShiftMask (1<<1) |
352 |
|
|
353 |
/* NT status codes for RDPDR */ |
/* NT status codes for RDPDR */ |
354 |
#define STATUS_SUCCESS 0x00000000 |
#define STATUS_SUCCESS 0x00000000 |
355 |
|
#define STATUS_NOT_IMPLEMENTED 0x00000001 |
356 |
#define STATUS_PENDING 0x00000103 |
#define STATUS_PENDING 0x00000103 |
357 |
|
|
358 |
#define STATUS_NO_MORE_FILES 0x80000006 |
#define STATUS_NO_MORE_FILES 0x80000006 |
371 |
#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba |
#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba |
372 |
#define STATUS_NOT_SUPPORTED 0xc00000bb |
#define STATUS_NOT_SUPPORTED 0xc00000bb |
373 |
#define STATUS_TIMEOUT 0xc0000102 |
#define STATUS_TIMEOUT 0xc0000102 |
374 |
|
#define STATUS_NOTIFY_ENUM_DIR 0xc000010c |
375 |
#define STATUS_CANCELLED 0xc0000120 |
#define STATUS_CANCELLED 0xc0000120 |
376 |
|
|
377 |
|
|
385 |
|
|
386 |
#define FILE_DIRECTORY_FILE 0x00000001 |
#define FILE_DIRECTORY_FILE 0x00000001 |
387 |
#define FILE_NON_DIRECTORY_FILE 0x00000040 |
#define FILE_NON_DIRECTORY_FILE 0x00000040 |
388 |
|
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 |
389 |
|
#define FILE_DELETE_ON_CLOSE 0x00001000 |
390 |
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 |
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 |
391 |
|
|
392 |
/* RDP5 disconnect PDU */ |
/* RDP5 disconnect PDU */ |