~ubuntu-branches/ubuntu/raring/freerdp/raring

« back to all changes in this revision

Viewing changes to channels/rdpdr/rdpdr_constants.h

  • Committer: Bazaar Package Importer
  • Author(s): Otavio Salvador
  • Date: 2010-06-23 21:39:09 UTC
  • Revision ID: james.westby@ubuntu.com-20100623213909-bb9pvvv03913tdv6
Tags: upstream-0.7.1
ImportĀ upstreamĀ versionĀ 0.7.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- c-basic-offset: 8 -*-
 
2
   FreeRDP: A Remote Desktop Protocol client.
 
3
   RAIL (Remote Application Integrated Locally) constants
 
4
 
 
5
   Copyright (C) Marc-Andre Moreau <marcandre.moreau@gmail.com> 2009
 
6
 
 
7
   This program is free software; you can redistribute it and/or modify
 
8
   it under the terms of the GNU General Public License as published by
 
9
   the Free Software Foundation; either version 2 of the License, or
 
10
   (at your option) any later version.
 
11
 
 
12
   This program is distributed in the hope that it will be useful,
 
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
   GNU General Public License for more details.
 
16
 
 
17
   You should have received a copy of the GNU General Public License
 
18
   along with this program; if not, write to the Free Software
 
19
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
20
*/
 
21
 
 
22
#ifndef __RDPDR_CONSTANTS_H
 
23
#define __RDPDR_CONSTANTS_H
 
24
 
 
25
/* RDPDR_HEADER.Component */
 
26
#define RDPDR_CTYP_CORE 0x4472 // "sD" "Ds" ???
 
27
#define RDPDR_CTYP_PRN  0x5052 // "RP" "PR" (PR)inting
 
28
 
 
29
/* RDPDR_HEADER.PacketId */
 
30
#define PAKID_CORE_SERVER_ANNOUNCE      0x496E // "nI" "nI" ???
 
31
#define PAKID_CORE_CLIENTID_CONFIRM     0x4343 // "CC" "CC" (C)lientID (C)onfirm
 
32
#define PAKID_CORE_CLIENT_NAME          0x434E // "NC" "CN" (C)lient (N)ame
 
33
#define PAKID_CORE_DEVICELIST_ANNOUNCE  0x4441 // "AD" "DA" (D)evice (A)nnounce
 
34
#define PAKID_CORE_DEVICE_REPLY         0x6472 // "rd" "dr" (d)evice (r)eply
 
35
#define PAKID_CORE_DEVICE_IOREQUEST     0x4952 // "RI" "IR" (I)O (R)equest
 
36
#define PAKID_CORE_DEVICE_IOCOMPLETION  0x4943 // "CI" "IC" (I)O (C)ompletion
 
37
#define PAKID_CORE_SERVER_CAPABILITY    0x5350 // "PS" "SP" (S)erver (C)apability
 
38
#define PAKID_CORE_CLIENT_CAPABILITY    0x4350 // "PC" "CP" (C)lient (C)apability
 
39
#define PAKID_CORE_DEVICELIST_REMOVE    0x444D // "MD" "DM" (D)evice list (R)emove
 
40
#define PAKID_PRN_CACHE_DATA            0x5043 // "CP" "PC" (P)rinter (C)ache data
 
41
#define PAKID_CORE_USER_LOGGEDON        0x554C // "LU" "UL" (U)ser (L)ogged on
 
42
#define PAKID_PRN_USING_XPS             0x5543 // "CU" "UC" (U)sing (?)XPS
 
43
 
 
44
/* CAPABILITY_HEADER.CapabilityType */
 
45
#define CAP_GENERAL_TYPE     0x0001
 
46
#define CAP_PRINTER_TYPE     0x0002
 
47
#define CAP_PORT_TYPE        0x0003
 
48
#define CAP_DRIVE_TYPE       0x0004
 
49
#define CAP_SMARTCARD_TYPE   0x0005
 
50
 
 
51
/* CAPABILITY_HEADER.Version */
 
52
#define GENERAL_CAPABILITY_VERSION_01   0x00000001
 
53
#define GENERAL_CAPABILITY_VERSION_02   0x00000002
 
54
#define PRINT_CAPABILITY_VERSION_01     0x00000001
 
55
#define PORT_CAPABILITY_VERSION_01      0x00000001
 
56
#define DRIVE_CAPABILITY_VERSION_01     0x00000001
 
57
#define DRIVE_CAPABILITY_VERSION_02     0x00000002
 
58
#define SMARTCARD_CAPABILITY_VERSION_01 0x00000001
 
59
 
 
60
/* DEVICE_ANNOUNCE.DeviceType */
 
61
#define RDPDR_DTYP_SERIAL               0x00000001
 
62
#define RDPDR_DTYP_PARALLEL             0x00000002
 
63
#define RDPDR_DTYP_PRINT                0x00000004
 
64
#define RDPDR_DTYP_FILESYSTEM           0x00000008
 
65
#define RDPDR_DTYP_SMARTCARD            0x00000020
 
66
 
 
67
/* DR_DEVICE_IOREQUEST.MajorFunction */
 
68
#define IRP_MJ_CREATE                   0x00000000
 
69
#define IRP_MJ_CLOSE                    0x00000002
 
70
#define IRP_MJ_READ                     0x00000003
 
71
#define IRP_MJ_WRITE                    0x00000004
 
72
#define IRP_MJ_DEVICE_CONTROL           0x0000000E
 
73
#define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0000000A
 
74
#define IRP_MJ_SET_VOLUME_INFORMATION   0x0000000B
 
75
#define IRP_MJ_QUERY_INFORMATION        0x00000005
 
76
#define IRP_MJ_SET_INFORMATION          0x00000006
 
77
#define IRP_MJ_DIRECTORY_CONTROL        0x0000000C
 
78
#define IRP_MJ_LOCK_CONTROL             0x00000011
 
79
 
 
80
/* DR_DEVICE_IOREQUEST.MinorFunction */
 
81
#define IRP_MN_QUERY_DIRECTORY          0x00000001
 
82
#define IRP_MN_NOTIFY_CHANGE_DIRECTORY  0x00000002
 
83
 
 
84
/* DR_CREATE_REQ.CreateDisposition */
 
85
#define FILE_SUPERSEDE                  0x00000000
 
86
#define FILE_OPEN                       0x00000001
 
87
#define FILE_CREATE                     0x00000002
 
88
#define FILE_OPEN_IF                    0x00000003
 
89
#define FILE_OVERWRITE                  0x00000004
 
90
#define FILE_OVERWRITE_IF               0x00000005
 
91
 
 
92
/* DR_CREATE_REQ.CreateOptions [MS-SMB2] */
 
93
#define FILE_DIRECTORY_FILE             0x00000001
 
94
#define FILE_NON_DIRECTORY_FILE         0x00000040
 
95
#define FILE_COMPLETE_IF_OPLOCKED       0x00000100
 
96
#define FILE_DELETE_ON_CLOSE            0x00001000
 
97
#define FILE_OPEN_FOR_FREE_SPACE_QUERY  0x00800000
 
98
 
 
99
/* DR_CREATE_REQ.DesiredAccess [MS-SMB2] */
 
100
#define FILE_READ_DATA                  0x00000001
 
101
#define FILE_WRITE_DATA                 0x00000002
 
102
#define FILE_APPEND_DATA                0x00000004
 
103
#define FILE_READ_EA                    0x00000008
 
104
#define FILE_WRITE_EA                   0x00000010
 
105
#define FILE_EXECUTE                    0x00000020
 
106
#define FILE_READ_ATTRIBUTES            0x00000080
 
107
#define FILE_WRITE_ATTRIBUTES           0x00000100
 
108
#define DELETE                          0x00010000
 
109
#define READ_CONTROL                    0x00020000
 
110
#define WRITE_DAC                       0x00040000
 
111
#define WRITE_OWNER                     0x00080000
 
112
#define SYNCHRONIZE                     0x00100000
 
113
#define ACCESS_SYSTEM_SECURITY          0x01000000
 
114
#define MAXIMUM_ALLOWED                 0x02000000
 
115
#define GENERIC_ALL                     0x10000000
 
116
#define GENERIC_EXECUTE                 0x20000000
 
117
#define GENERIC_WRITE                   0x40000000
 
118
#define GENERIC_READ                    0x80000000
 
119
 
 
120
/* DR_CREATE_RSP.Information */
 
121
/* DR_DRIVE_CREATE_RSP.DeviceCreateResponse */
 
122
#define FILE_SUPERSEDED                 0x00000000
 
123
#define FILE_OPENED                     0x00000001
 
124
#define FILE_OVERWRITTEN                0x00000003
 
125
 
 
126
/* DR_CORE_CLIENT_ANNOUNCE_RSP.VersionMinor */
 
127
#define RDPDR_MINOR_RDP_VERSION_5_0     0x0002
 
128
#define RDPDR_MINOR_RDP_VERSION_5_1     0x0005
 
129
#define RDPDR_MINOR_RDP_VERSION_5_2     0x000A
 
130
#define RDPDR_MINOR_RDP_VERSION_6_X     0x000C
 
131
 
 
132
/* DR_CORE_CLIENT_NAME_REQ.UnicodeFlag */
 
133
#define RDPDR_CLIENT_NAME_UNICODE       0x00000001
 
134
#define RDPDR_CLIENT_NAME_ASCII         0x00000000
 
135
 
 
136
/* GENERAL_CAPS_SET.ioCode1 */
 
137
#define RDPDR_IRP_MJ_CREATE                   0x00000001
 
138
#define RDPDR_IRP_MJ_CLEANUP                  0x00000002
 
139
#define RDPDR_IRP_MJ_CLOSE                    0x00000004
 
140
#define RDPDR_IRP_MJ_READ                     0x00000008
 
141
#define RDPDR_IRP_MJ_WRITE                    0x00000010
 
142
#define RDPDR_IRP_MJ_FLUSH_BUFFERS            0x00000020
 
143
#define RDPDR_IRP_MJ_SHUTDOWN                 0x00000040
 
144
#define RDPDR_IRP_MJ_DEVICE_CONTROL           0x00000080
 
145
#define RDPDR_IRP_MJ_QUERY_VOLUME_INFORMATION 0x00000100
 
146
#define RDPDR_IRP_MJ_SET_VOLUME_INFORMATION   0x00000200
 
147
#define RDPDR_IRP_MJ_QUERY_INFORMATION        0x00000400
 
148
#define RDPDR_IRP_MJ_SET_INFORMATION          0x00000800
 
149
#define RDPDR_IRP_MJ_DIRECTORY_CONTROL        0x00001000
 
150
#define RDPDR_IRP_MJ_LOCK_CONTROL             0x00002000
 
151
#define RDPDR_IRP_MJ_QUERY_SECURITY           0x00004000
 
152
#define RDPDR_IRP_MJ_SET_SECURITY             0x00008000
 
153
 
 
154
/* GENERAL_CAPS_SET.extendedPDU */
 
155
#define RDPDR_DEVICE_REMOVE_PDUS        0x00000001
 
156
#define RDPDR_CLIENT_DISPLAY_NAME_PDU   0x00000002
 
157
#define RDPDR_USER_LOGGEDON_PDU         0x00000004
 
158
 
 
159
/* GENERAL_CAPS_SET.extraFlags1 */
 
160
#define ENABLE_ASYNCIO                  0x00000001
 
161
 
 
162
/* DR_DRIVE_LOCK_REQ.Operation */
 
163
#define RDP_LOWIO_OP_SHAREDLOCK         0x00000002
 
164
#define RDP_LOWIO_OP_EXCLUSIVELOCK      0x00000003
 
165
#define RDP_LOWIO_OP_UNLOCK             0x00000004
 
166
#define RDP_LOWIO_OP_UNLOCK_MULTIPLE    0x00000005
 
167
 
 
168
/* NT status codes for RDPDR */
 
169
#define RD_STATUS_SUCCESS                  0x00000000
 
170
#define RD_STATUS_NOT_IMPLEMENTED          0x00000001
 
171
#define RD_STATUS_PENDING                  0x00000103
 
172
 
 
173
#define RD_STATUS_NO_MORE_FILES            0x80000006
 
174
#define RD_STATUS_DEVICE_PAPER_EMPTY       0x8000000e
 
175
#define RD_STATUS_DEVICE_POWERED_OFF       0x8000000f
 
176
#define RD_STATUS_DEVICE_OFF_LINE          0x80000010
 
177
#define RD_STATUS_DEVICE_BUSY              0x80000011
 
178
 
 
179
#define RD_STATUS_INVALID_HANDLE           0xc0000008
 
180
#define RD_STATUS_INVALID_PARAMETER        0xc000000d
 
181
#define RD_STATUS_NO_SUCH_FILE             0xc000000f
 
182
#define RD_STATUS_INVALID_DEVICE_REQUEST   0xc0000010
 
183
#define RD_STATUS_ACCESS_DENIED            0xc0000022
 
184
#define RD_STATUS_OBJECT_NAME_COLLISION    0xc0000035
 
185
#define RD_STATUS_DISK_FULL                0xc000007f
 
186
#define RD_STATUS_FILE_IS_A_DIRECTORY      0xc00000ba
 
187
#define RD_STATUS_NOT_SUPPORTED            0xc00000bb
 
188
#define RD_STATUS_TIMEOUT                  0xc0000102
 
189
#define RD_STATUS_NOTIFY_ENUM_DIR          0xc000010c
 
190
#define RD_STATUS_CANCELLED                0xc0000120
 
191
 
 
192
#define RDPDR_MAX_DEVICES               0x10
 
193
 
 
194
#define RDPDR_PRINTER_ANNOUNCE_FLAG_ASCII               0x00000001
 
195
#define RDPDR_PRINTER_ANNOUNCE_FLAG_DEFAULTPRINTER      0x00000002
 
196
#define RDPDR_PRINTER_ANNOUNCE_FLAG_NETWORKPRINTER      0x00000004
 
197
#define RDPDR_PRINTER_ANNOUNCE_FLAG_TSPRINTER           0x00000008
 
198
#define RDPDR_PRINTER_ANNOUNCE_FLAG_XPSFORMAT           0x00000010
 
199
 
 
200
/* Smartcard constants */
 
201
#define SCARD_LOCK_TCP          0
 
202
#define SCARD_LOCK_SEC          1
 
203
#define SCARD_LOCK_CHANNEL      2
 
204
#define SCARD_LOCK_RDPDR        3
 
205
#define SCARD_LOCK_LAST         4
 
206
 
 
207
/* [MS-FSCC] FileAttributes */
 
208
#define FILE_ATTRIBUTE_ARCHIVE              0x00000020
 
209
#define FILE_ATTRIBUTE_COMPRESSED           0x00000800
 
210
#define FILE_ATTRIBUTE_DIRECTORY            0x00000010
 
211
#define FILE_ATTRIBUTE_ENCRYPTED            0x00004000
 
212
#define FILE_ATTRIBUTE_HIDDEN               0x00000002
 
213
#define FILE_ATTRIBUTE_NORMAL               0x00000080
 
214
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  0x00002000
 
215
#define FILE_ATTRIBUTE_OFFLINE              0x00001000
 
216
#define FILE_ATTRIBUTE_READONLY             0x00000001
 
217
#define FILE_ATTRIBUTE_REPARSE_POINT        0x00000400
 
218
#define FILE_ATTRIBUTE_SPARSE_FILE          0x00000200
 
219
#define FILE_ATTRIBUTE_SYSTEM               0x00000004
 
220
#define FILE_ATTRIBUTE_TEMPORARY            0x00000100
 
221
 
 
222
/* [MS-FSCC] FSCTL Structures */
 
223
#define FSCTL_GET_REPARSE_POINT                 0x900a8
 
224
#define FSCTL_GET_RETRIEVAL_POINTERS            0x90073
 
225
#define FSCTL_IS_PATHNAME_VALID                 0x9002c
 
226
#define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION 0x1400ec
 
227
#define FSCTL_PIPE_PEEK                         0x11400c
 
228
#define FSCTL_PIPE_TRANSCEIVE                   0x11c017
 
229
#define FSCTL_PIPE_WAIT                         0x110018
 
230
#define FSCTL_QUERY_FAT_BPB                     0x90058
 
231
#define FSCTL_QUERY_ALLOCATED_RANGES            0x940cf
 
232
#define FSCTL_QUERY_ON_DISK_VOLUME_INFO         0x9013c
 
233
#define FSCTL_QUERY_SPARING_INFO                0x90138
 
234
#define FSCTL_READ_FILE_USN_DATA                0x900eb
 
235
#define FSCTL_RECALL_FILE                       0x90117
 
236
#define FSCTL_SET_COMPRESSION                   0x9c040
 
237
#define FSCTL_SET_DEFECT_MANAGEMENT             0x98134
 
238
#define FSCTL_SET_ENCRYPTION                    0x900D7
 
239
#define FSCTL_SET_OBJECT_ID                     0x90098
 
240
#define FSCTL_SET_OBJECT_ID_EXTENDED            0x900bc
 
241
#define FSCTL_SET_REPARSE_POINT                 0x900a4
 
242
#define FSCTL_SET_SPARSE                        0x900c4
 
243
#define FSCTL_SET_ZERO_DATA                     0x980c8
 
244
#define FSCTL_SET_ZERO_ON_DEALLOCATION          0x90194
 
245
#define FSCTL_SIS_COPYFILE                      0x90100
 
246
#define FSCTL_WRITE_USN_CLOSE_RECORD            0x900ef
 
247
 
 
248
/* [MS-FSCC] FileFsAttributeInformation.FileSystemAttributes */
 
249
#define FILE_SUPPORTS_USN_JOURNAL           0x02000000
 
250
#define FILE_SUPPORTS_OPEN_BY_FILE_ID       0x01000000
 
251
#define FILE_SUPPORTS_EXTENDED_ATTRIBUTES   0x00800000
 
252
#define FILE_SUPPORTS_HARD_LINKS            0x00400000
 
253
#define FILE_SUPPORTS_TRANSACTIONS          0x00200000
 
254
#define FILE_SEQUENTIAL_WRITE_ONCE          0x00100000
 
255
#define FILE_READ_ONLY_VOLUME               0x00080000
 
256
#define FILE_NAMED_STREAMS                  0x00040000
 
257
#define FILE_SUPPORTS_ENCRYPTION            0x00020000
 
258
#define FILE_SUPPORTS_OBJECT_IDS            0x00010000
 
259
#define FILE_VOLUME_IS_COMPRESSED           0x00008000
 
260
#define FILE_SUPPORTS_REMOTE_STORAGE        0x00000100
 
261
#define FILE_SUPPORTS_REPARSE_POINTS        0x00000080
 
262
#define FILE_SUPPORTS_SPARSE_FILES          0x00000040
 
263
#define FILE_VOLUME_QUOTAS                  0x00000020
 
264
#define FILE_FILE_COMPRESSION               0x00000010
 
265
#define FILE_PERSISTENT_ACLS                0x00000008
 
266
#define FILE_UNICODE_ON_DISK                0x00000004
 
267
#define FILE_CASE_PRESERVED_NAMES           0x00000002
 
268
#define FILE_CASE_SENSITIVE_SEARCH          0x00000001
 
269
 
 
270
/* [MS-FSCC] FileFsDeviceInformation.DeviceType */
 
271
#define FILE_DEVICE_CD_ROM                  0x00000002
 
272
#define FILE_DEVICE_DISK                    0x00000007
 
273
 
 
274
/* [MS-FSCC] FileFsDeviceInformation.Characteristics */
 
275
#define FILE_REMOVABLE_MEDIA                0x00000001
 
276
#define FILE_READ_ONLY_DEVICE               0x00000002
 
277
#define FILE_FLOPPY_DISKETTE                0x00000004
 
278
#define FILE_WRITE_ONCE_MEDIA               0x00000008
 
279
#define FILE_REMOTE_DEVICE                  0x00000010
 
280
#define FILE_DEVICE_IS_MOUNTED              0x00000020
 
281
#define FILE_VIRTUAL_VOLUME                 0x00000040
 
282
#define FILE_DEVICE_SECURE_OPEN             0x00000100
 
283
 
 
284
enum FILE_INFORMATION_CLASS
 
285
{
 
286
        FileDirectoryInformation = 1,
 
287
        FileFullDirectoryInformation,
 
288
        FileBothDirectoryInformation,
 
289
        FileBasicInformation,
 
290
        FileStandardInformation,
 
291
        FileInternalInformation,
 
292
        FileEaInformation,
 
293
        FileAccessInformation,
 
294
        FileNameInformation,
 
295
        FileRenameInformation,
 
296
        FileLinkInformation,
 
297
        FileNamesInformation,
 
298
        FileDispositionInformation,
 
299
        FilePositionInformation,
 
300
        FileFullEaInformation,
 
301
        FileModeInformation,
 
302
        FileAlignmentInformation,
 
303
        FileAllInformation,
 
304
        FileAllocationInformation,
 
305
        FileEndOfFileInformation,
 
306
        FileAlternateNameInformation,
 
307
        FileStreamInformation,
 
308
        FilePipeInformation,
 
309
        FilePipeLocalInformation,
 
310
        FilePipeRemoteInformation,
 
311
        FileMailslotQueryInformation,
 
312
        FileMailslotSetInformation,
 
313
        FileCompressionInformation,
 
314
        FileCopyOnWriteInformation,
 
315
        FileCompletionInformation,
 
316
        FileMoveClusterInformation,
 
317
        FileOleClassIdInformation,
 
318
        FileOleStateBitsInformation,
 
319
        FileNetworkOpenInformation,
 
320
        FileObjectIdInformation,
 
321
        FileOleAllInformation,
 
322
        FileOleDirectoryInformation,
 
323
        FileContentIndexInformation,
 
324
        FileInheritContentIndexInformation,
 
325
        FileOleInformation,
 
326
        FileMaximumInformation
 
327
};
 
328
 
 
329
enum FS_INFORMATION_CLASS
 
330
{
 
331
        FileFsVolumeInformation = 1,
 
332
        FileFsLabelInformation,
 
333
        FileFsSizeInformation,
 
334
        FileFsDeviceInformation,
 
335
        FileFsAttributeInformation,
 
336
        FileFsControlInformation,
 
337
        FileFsFullSizeInformation,
 
338
        FileFsObjectIdInformation,
 
339
        FileFsDriverPathInformation,
 
340
        FileFsMaximumInformation
 
341
};
 
342
 
 
343
#endif /* __CONSTANTS_RDPDR_H */
 
344