sl@0
|
1 |
/*++ BUILD Version: 0004 // Increment this if a change has global effects
|
sl@0
|
2 |
Copyright (c) 1992-1993 Microsoft Corporation
|
sl@0
|
3 |
Module Name:
|
sl@0
|
4 |
devioctl.h
|
sl@0
|
5 |
Revision History:
|
sl@0
|
6 |
-- */
|
sl@0
|
7 |
// begin_winioctl
|
sl@0
|
8 |
#ifndef _DEVIOCTL_
|
sl@0
|
9 |
#define _DEVIOCTL_
|
sl@0
|
10 |
// begin_ntddk begin_nthal begin_ntifs
|
sl@0
|
11 |
//
|
sl@0
|
12 |
// Define the various device type values. Note that values used by Microsoft
|
sl@0
|
13 |
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
|
sl@0
|
14 |
// by customers.
|
sl@0
|
15 |
//
|
sl@0
|
16 |
#define DEVICE_TYPE ULONG
|
sl@0
|
17 |
#define FILE_DEVICE_BEEP 0x00000001
|
sl@0
|
18 |
#define FILE_DEVICE_CD_ROM 0x00000002
|
sl@0
|
19 |
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
|
sl@0
|
20 |
#define FILE_DEVICE_CONTROLLER 0x00000004
|
sl@0
|
21 |
#define FILE_DEVICE_DATALINK 0x00000005
|
sl@0
|
22 |
#define FILE_DEVICE_DFS 0x00000006
|
sl@0
|
23 |
#define FILE_DEVICE_DISK 0x00000007
|
sl@0
|
24 |
#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
|
sl@0
|
25 |
#define FILE_DEVICE_FILE_SYSTEM 0x00000009
|
sl@0
|
26 |
#define FILE_DEVICE_INPORT_PORT 0x0000000a
|
sl@0
|
27 |
#define FILE_DEVICE_KEYBOARD 0x0000000b
|
sl@0
|
28 |
#define FILE_DEVICE_MAILSLOT 0x0000000c
|
sl@0
|
29 |
#define FILE_DEVICE_MIDI_IN 0x0000000d
|
sl@0
|
30 |
#define FILE_DEVICE_MIDI_OUT 0x0000000e
|
sl@0
|
31 |
#define FILE_DEVICE_MOUSE 0x0000000f
|
sl@0
|
32 |
#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
|
sl@0
|
33 |
#define FILE_DEVICE_NAMED_PIPE 0x00000011
|
sl@0
|
34 |
#define FILE_DEVICE_NETWORK 0x00000012
|
sl@0
|
35 |
#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
|
sl@0
|
36 |
#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
|
sl@0
|
37 |
#define FILE_DEVICE_NULL 0x00000015
|
sl@0
|
38 |
#define FILE_DEVICE_PARALLEL_PORT 0x00000016
|
sl@0
|
39 |
#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
|
sl@0
|
40 |
#define FILE_DEVICE_PRINTER 0x00000018
|
sl@0
|
41 |
#define FILE_DEVICE_SCANNER 0x00000019
|
sl@0
|
42 |
#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a
|
sl@0
|
43 |
#define FILE_DEVICE_SERIAL_PORT 0x0000001b
|
sl@0
|
44 |
#define FILE_DEVICE_SCREEN 0x0000001c
|
sl@0
|
45 |
#define FILE_DEVICE_SOUND 0x0000001d
|
sl@0
|
46 |
#define FILE_DEVICE_STREAMS 0x0000001e
|
sl@0
|
47 |
#define FILE_DEVICE_TAPE 0x0000001f
|
sl@0
|
48 |
#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
|
sl@0
|
49 |
#define FILE_DEVICE_TRANSPORT 0x00000021
|
sl@0
|
50 |
#define FILE_DEVICE_UNKNOWN 0x00000022
|
sl@0
|
51 |
#define FILE_DEVICE_VIDEO 0x00000023
|
sl@0
|
52 |
#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
|
sl@0
|
53 |
#define FILE_DEVICE_WAVE_IN 0x00000025
|
sl@0
|
54 |
#define FILE_DEVICE_WAVE_OUT 0x00000026
|
sl@0
|
55 |
#define FILE_DEVICE_8042_PORT 0x00000027
|
sl@0
|
56 |
#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
|
sl@0
|
57 |
#define FILE_DEVICE_BATTERY 0x00000029
|
sl@0
|
58 |
#define FILE_DEVICE_BUS_EXTENDER 0x0000002a
|
sl@0
|
59 |
#define FILE_DEVICE_MODEM 0x0000002b
|
sl@0
|
60 |
#define FILE_DEVICE_VDM 0x0000002c
|
sl@0
|
61 |
#define FILE_DEVICE_MASS_STORAGE 0x0000002d
|
sl@0
|
62 |
//
|
sl@0
|
63 |
// Macro definition for defining IOCTL and FSCTL function control codes. Note
|
sl@0
|
64 |
// that function codes 0-2047 are reserved for Microsoft Corporation, and
|
sl@0
|
65 |
// 2048-4095 are reserved for customers.
|
sl@0
|
66 |
//
|
sl@0
|
67 |
#define CTL_CODE( DeviceType, Function, Method, Access ) ( \
|
sl@0
|
68 |
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
|
sl@0
|
69 |
)
|
sl@0
|
70 |
//
|
sl@0
|
71 |
// Define the method codes for how buffers are passed for I/O and FS controls
|
sl@0
|
72 |
//
|
sl@0
|
73 |
#define METHOD_BUFFERED 0
|
sl@0
|
74 |
#define METHOD_IN_DIRECT 1
|
sl@0
|
75 |
#define METHOD_OUT_DIRECT 2
|
sl@0
|
76 |
#define METHOD_NEITHER 3
|
sl@0
|
77 |
//
|
sl@0
|
78 |
// Define the access check value for any access
|
sl@0
|
79 |
//
|
sl@0
|
80 |
//
|
sl@0
|
81 |
// The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
|
sl@0
|
82 |
// ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
|
sl@0
|
83 |
// constants *MUST* always be in sync.
|
sl@0
|
84 |
//
|
sl@0
|
85 |
#define FILE_ANY_ACCESS 0
|
sl@0
|
86 |
#define FILE_READ_ACCESS ( 0x0001 ) // file & pipe
|
sl@0
|
87 |
#define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe
|
sl@0
|
88 |
// end_ntddk end_nthal end_ntifs
|
sl@0
|
89 |
#endif // _DEVIOCTL_
|
sl@0
|
90 |
// end_winioctl
|