2
2
rdesktop: A Remote Desktop Protocol client.
3
3
Miscellaneous protocol constants
4
Copyright (C) Matthew Chapman 1999-2002
4
Copyright (C) Matthew Chapman 1999-2005
6
6
This program is free software; you can redistribute it and/or modify
7
7
it under the terms of the GNU General Public License as published by
8
8
the Free Software Foundation; either version 2 of the License, or
9
9
(at your option) any later version.
11
11
This program is distributed in the hope that it will be useful,
12
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
14
GNU General Public License for more details.
16
16
You should have received a copy of the GNU General Public License
17
17
along with this program; if not, write to the Free Software
18
18
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
199
203
#define TEXT2_VERTICAL 0x04
200
204
#define TEXT2_IMPLICIT_X 0x20
209
/* RDP bitmap cache (version 2) constants */
210
#define BMPCACHE2_C0_CELLS 0x78
211
#define BMPCACHE2_C1_CELLS 0x78
212
#define BMPCACHE2_C2_CELLS 0x150
213
#define BMPCACHE2_NUM_PSTCELLS 0x9f6
215
#define PDU_FLAG_FIRST 0x01
216
#define PDU_FLAG_LAST 0x02
202
218
/* RDP capabilities */
203
219
#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */
204
220
#define RDP_CAPLEN_GENERAL 0x18
231
247
#define RDP_CAPSET_COLCACHE 10
232
248
#define RDP_CAPLEN_COLCACHE 0x08
234
#define RDP_CAPSET_UNKNOWN 13
235
#define RDP_CAPLEN_UNKNOWN 0x9C
250
#define RDP_CAPSET_BMPCACHE2 19
251
#define RDP_CAPLEN_BMPCACHE2 0x28
252
#define BMPCACHE2_FLAG_PERSIST ((uint32)1<<31)
237
254
#define RDP_SOURCE "MSTSC"
239
256
/* Logon flags */
240
#define RDP_LOGON_NORMAL 0x33
241
#define RDP_LOGON_AUTO 0x8
242
#define RDP_LOGON_BLOB 0x100
257
#define RDP_LOGON_AUTO 0x0008
258
#define RDP_LOGON_NORMAL 0x0033
259
#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */
260
#define RDP_LOGON_BLOB 0x0100
261
#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */
262
#define RDP_LOGON_LEAVE_AUDIO 0x2000
264
#define RDP5_DISABLE_NOTHING 0x00
265
#define RDP5_NO_WALLPAPER 0x01
266
#define RDP5_NO_FULLWINDOWDRAG 0x02
267
#define RDP5_NO_MENUANIMATIONS 0x04
268
#define RDP5_NO_THEMING 0x08
269
#define RDP5_NO_CURSOR_SHADOW 0x20
270
#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */
272
/* compression types */
273
#define RDP_MPPC_BIG 0x01
274
#define RDP_MPPC_COMPRESSED 0x20
275
#define RDP_MPPC_RESET 0x40
276
#define RDP_MPPC_FLUSH 0x80
277
#define RDP_MPPC_DICT_SIZE 65536
279
#define RDP5_COMPRESSED 0x80
244
281
/* Keymap flags */
245
282
#define MapRightShiftMask (1<<0)
315
352
/* NT status codes for RDPDR */
316
353
#define STATUS_SUCCESS 0x00000000
354
#define STATUS_NOT_IMPLEMENTED 0x00000001
355
#define STATUS_PENDING 0x00000103
357
#define STATUS_NO_MORE_FILES 0x80000006
358
#define STATUS_DEVICE_PAPER_EMPTY 0x8000000e
359
#define STATUS_DEVICE_POWERED_OFF 0x8000000f
360
#define STATUS_DEVICE_OFF_LINE 0x80000010
361
#define STATUS_DEVICE_BUSY 0x80000011
363
#define STATUS_INVALID_HANDLE 0xc0000008
317
364
#define STATUS_INVALID_PARAMETER 0xc000000d
365
#define STATUS_NO_SUCH_FILE 0xc000000f
318
366
#define STATUS_INVALID_DEVICE_REQUEST 0xc0000010
319
367
#define STATUS_ACCESS_DENIED 0xc0000022
368
#define STATUS_OBJECT_NAME_COLLISION 0xc0000035
369
#define STATUS_DISK_FULL 0xc000007f
370
#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba
371
#define STATUS_NOT_SUPPORTED 0xc00000bb
372
#define STATUS_TIMEOUT 0xc0000102
373
#define STATUS_NOTIFY_ENUM_DIR 0xc000010c
374
#define STATUS_CANCELLED 0xc0000120
377
/* RDPDR constants */
378
#define RDPDR_MAX_DEVICES 0x10
379
#define DEVICE_TYPE_SERIAL 0x01
380
#define DEVICE_TYPE_PARALLEL 0x02
381
#define DEVICE_TYPE_PRINTER 0x04
382
#define DEVICE_TYPE_DISK 0x08
383
#define DEVICE_TYPE_SCARD 0x20
385
#define FILE_DIRECTORY_FILE 0x00000001
386
#define FILE_NON_DIRECTORY_FILE 0x00000040
387
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
388
#define FILE_DELETE_ON_CLOSE 0x00001000
389
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
391
/* RDP5 disconnect PDU */
392
#define exDiscReasonNoInfo 0x0000
393
#define exDiscReasonAPIInitiatedDisconnect 0x0001
394
#define exDiscReasonAPIInitiatedLogoff 0x0002
395
#define exDiscReasonServerIdleTimeout 0x0003
396
#define exDiscReasonServerLogonTimeout 0x0004
397
#define exDiscReasonReplacedByOtherConnection 0x0005
398
#define exDiscReasonOutOfMemory 0x0006
399
#define exDiscReasonServerDeniedConnection 0x0007
400
#define exDiscReasonServerDeniedConnectionFips 0x0008
401
#define exDiscReasonLicenseInternal 0x0100
402
#define exDiscReasonLicenseNoLicenseServer 0x0101
403
#define exDiscReasonLicenseNoLicense 0x0102
404
#define exDiscReasonLicenseErrClientMsg 0x0103
405
#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104
406
#define exDiscReasonLicenseErrClientLicense 0x0105
407
#define exDiscReasonLicenseCantFinishProtocol 0x0106
408
#define exDiscReasonLicenseClientEndedProtocol 0x0107
409
#define exDiscReasonLicenseErrClientEncryption 0x0108
410
#define exDiscReasonLicenseCantUpgradeLicense 0x0109
411
#define exDiscReasonLicenseNoRemoteConnections 0x010a