Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) the Wine project |
| 3 | * |
| 4 | * This library is free software; you can redistribute it and/or |
| 5 | * modify it under the terms of the GNU Lesser General Public |
| 6 | * License as published by the Free Software Foundation; either |
| 7 | * version 2.1 of the License, or (at your option) any later version. |
| 8 | * |
| 9 | * This library is distributed in the hope that it will be useful, |
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 12 | * Lesser General Public License for more details. |
| 13 | * |
| 14 | * You should have received a copy of the GNU Lesser General Public |
| 15 | * License along with this library; if not, write to the Free Software |
| 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 17 | */ |
| 18 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 19 | #ifndef __WINE_WINIOCTL_H |
| 20 | #define __WINE_WINIOCTL_H |
| 21 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 22 | #define CTL_CODE( DeviceType, Function, Method, Access ) ( \ |
| 23 | (DWORD)((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ |
| 24 | ) |
| 25 | |
| 26 | #define DEVICE_TYPE DWORD |
| 27 | |
| 28 | #define FILE_DEVICE_BEEP 0x00000001 |
| 29 | #define FILE_DEVICE_CD_ROM 0x00000002 |
| 30 | #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 |
| 31 | #define FILE_DEVICE_CONTROLLER 0x00000004 |
| 32 | #define FILE_DEVICE_DATALINK 0x00000005 |
| 33 | #define FILE_DEVICE_DFS 0x00000006 |
| 34 | #define FILE_DEVICE_DISK 0x00000007 |
| 35 | #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 |
| 36 | #define FILE_DEVICE_FILE_SYSTEM 0x00000009 |
| 37 | #define FILE_DEVICE_INPORT_PORT 0x0000000a |
| 38 | #define FILE_DEVICE_KEYBOARD 0x0000000b |
| 39 | #define FILE_DEVICE_MAILSLOT 0x0000000c |
| 40 | #define FILE_DEVICE_MIDI_IN 0x0000000d |
| 41 | #define FILE_DEVICE_MIDI_OUT 0x0000000e |
| 42 | #define FILE_DEVICE_MOUSE 0x0000000f |
| 43 | #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 |
| 44 | #define FILE_DEVICE_NAMED_PIPE 0x00000011 |
| 45 | #define FILE_DEVICE_NETWORK 0x00000012 |
| 46 | #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 |
| 47 | #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 |
| 48 | #define FILE_DEVICE_NULL 0x00000015 |
| 49 | #define FILE_DEVICE_PARALLEL_PORT 0x00000016 |
| 50 | #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 |
| 51 | #define FILE_DEVICE_PRINTER 0x00000018 |
| 52 | #define FILE_DEVICE_SCANNER 0x00000019 |
| 53 | #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a |
| 54 | #define FILE_DEVICE_SERIAL_PORT 0x0000001b |
| 55 | #define FILE_DEVICE_SCREEN 0x0000001c |
| 56 | #define FILE_DEVICE_SOUND 0x0000001d |
| 57 | #define FILE_DEVICE_STREAMS 0x0000001e |
| 58 | #define FILE_DEVICE_TAPE 0x0000001f |
| 59 | #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 |
| 60 | #define FILE_DEVICE_TRANSPORT 0x00000021 |
| 61 | #define FILE_DEVICE_UNKNOWN 0x00000022 |
| 62 | #define FILE_DEVICE_VIDEO 0x00000023 |
| 63 | #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 |
| 64 | #define FILE_DEVICE_WAVE_IN 0x00000025 |
| 65 | #define FILE_DEVICE_WAVE_OUT 0x00000026 |
| 66 | #define FILE_DEVICE_8042_PORT 0x00000027 |
| 67 | #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 |
| 68 | #define FILE_DEVICE_BATTERY 0x00000029 |
| 69 | #define FILE_DEVICE_BUS_EXTENDER 0x0000002a |
| 70 | #define FILE_DEVICE_MODEM 0x0000002b |
| 71 | #define FILE_DEVICE_VDM 0x0000002c |
| 72 | #define FILE_DEVICE_MASS_STORAGE 0x0000002d |
| 73 | #define FILE_DEVICE_SMB 0x0000002e |
| 74 | #define FILE_DEVICE_KS 0x0000002f |
| 75 | #define FILE_DEVICE_CHANGER 0x00000030 |
| 76 | #define FILE_DEVICE_SMARTCARD 0x00000031 |
| 77 | #define FILE_DEVICE_ACPI 0x00000032 |
| 78 | #define FILE_DEVICE_DVD 0x00000033 |
| 79 | #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 |
| 80 | #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 |
| 81 | #define FILE_DEVICE_DFS_VOLUME 0x00000036 |
Juergen Schmied | 76a9fa1 | 2002-05-09 19:40:30 +0000 | [diff] [blame] | 82 | #define FILE_DEVICE_SERENUM 0x00000037 |
| 83 | #define FILE_DEVICE_TERMSRV 0x00000038 |
| 84 | #define FILE_DEVICE_KSEC 0x00000039 |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 85 | |
| 86 | #define METHOD_BUFFERED 0 |
| 87 | #define METHOD_IN_DIRECT 1 |
| 88 | #define METHOD_OUT_DIRECT 2 |
| 89 | #define METHOD_NEITHER 3 |
| 90 | |
| 91 | #define FILE_ANY_ACCESS 0 |
| 92 | #define FILE_READ_ACCESS FILE_READ_DATA /* file & pipe */ |
| 93 | #define FILE_WRITE_ACCESS FILE_WRITE_DATA /* file & pipe */ |
| 94 | |
| 95 | #define FSCTL_REQUEST_OPLOCK_LEVEL_1 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 96 | #define FSCTL_REQUEST_OPLOCK_LEVEL_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 97 | #define FSCTL_REQUEST_BATCH_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 98 | #define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 99 | #define FSCTL_OPBATCH_ACK_CLOSE_PENDING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 100 | #define FSCTL_OPLOCK_BREAK_NOTIFY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 101 | #define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 102 | #define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 103 | #define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 104 | /* decommissioned fsctl value 9 */ |
| 105 | #define FSCTL_IS_VOLUME_MOUNTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 106 | #define FSCTL_IS_PATHNAME_VALID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 107 | #define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 108 | /* decommissioned fsctl value 13 */ |
| 109 | #define FSCTL_QUERY_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 110 | #define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 111 | #define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) |
| 112 | /* decommissioned fsctl value 17 */ |
| 113 | /* decommissioned fsctl value 18 */ |
| 114 | #define FSCTL_MARK_AS_SYSTEM_HIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 115 | #define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 116 | #define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 117 | #define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 118 | #define FSCTL_REQUEST_FILTER_OPLOCK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 119 | #define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 120 | /* Start: _WIN32_WINNT >= 0x0400 */ |
| 121 | #define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 122 | #define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 123 | #define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 124 | #define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 125 | #define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 126 | #define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 127 | #define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 128 | #define FSCTL_ALLOW_EXTENDED_DASD_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 129 | /* End: _WIN32_WINNT >= 0x0400 */ |
| 130 | |
| 131 | /* Start: _WIN32_WINNT >= 0x0500 */ |
| 132 | #define FSCTL_READ_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 133 | #define FSCTL_WRITE_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 134 | #define FSCTL_FIND_FILES_BY_SID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 135 | /* decommissioned fsctl value 36 */ |
| 136 | #define FSCTL_DUMP_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 137 | #define FSCTL_SET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_WRITE_DATA) |
| 138 | #define FSCTL_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 139 | #define FSCTL_DELETE_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_WRITE_DATA) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 140 | #define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA) |
| 141 | #define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 142 | #define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA) |
| 143 | #define FSCTL_ENUM_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_READ_DATA) |
| 144 | #define FSCTL_SECURITY_ID_CHECK CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) |
| 145 | #define FSCTL_READ_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_READ_DATA) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 146 | #define FSCTL_SET_OBJECT_ID_EXTENDED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_WRITE_DATA |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 147 | #define FSCTL_CREATE_OR_GET_OBJECT_ID CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 148 | #define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_WRITE_DATA) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 149 | #define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) |
| 150 | #define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 151 | #define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_DATA) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 152 | #define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 153 | #define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 154 | #define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 155 | #define FSCTL_READ_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_ANY_ACCESS) |
| 156 | #define FSCTL_CREATE_USN_JOURNAL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_READ_DATA) |
| 157 | #define FSCTL_READ_FILE_USN_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_READ_DATA) |
| 158 | #define FSCTL_WRITE_USN_CLOSE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_READ_DATA) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 159 | #define FSCTL_EXTEND_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 160 | /* End: _WIN32_WINNT >= 0x0500 */ |
| 161 | |
James Hawkins | 0ea0f5f | 2005-06-24 11:54:15 +0000 | [diff] [blame] | 162 | #define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 163 | #define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 164 | #define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 165 | #define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA) |
| 166 | #define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 167 | #define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) |
| 168 | #define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 169 | #define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 170 | #define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 171 | #define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 172 | #define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA) |
| 173 | #define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA) |
| 174 | #define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) |
| 175 | #define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA) |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 176 | |
| 177 | #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE |
| 178 | #define IOCTL_STORAGE_CHECK_VERIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 179 | #define IOCTL_STORAGE_MEDIA_REMOVAL CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 180 | #define IOCTL_STORAGE_EJECT_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 181 | #define IOCTL_STORAGE_LOAD_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 182 | #define IOCTL_STORAGE_RESERVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 183 | #define IOCTL_STORAGE_RELEASE CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 184 | #define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 185 | #define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 186 | #define IOCTL_STORAGE_MCN_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 187 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 188 | #define IOCTL_STORAGE_GET_MEDIA_TYPES CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 189 | #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 190 | |
| 191 | #define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 192 | #define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 193 | #define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 194 | |
| 195 | #define IOCTL_DISK_BASE FILE_DEVICE_DISK |
| 196 | #define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 197 | #define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 198 | #define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 199 | #define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 200 | #define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 201 | #define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 202 | #define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 203 | #define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 204 | #define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 205 | #define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 206 | #define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 207 | #define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 208 | #define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 209 | #define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 210 | #define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 211 | #define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 212 | #define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 213 | #define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 214 | #define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 215 | #define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 216 | #define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 217 | #define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 218 | #define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 219 | #define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 220 | #define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 221 | |
| 222 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 223 | /* Start: For _WIN32_WINNT >= 0x0400 */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 224 | #define IOCTL_DISK_CONTROLLER_NUMBER CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 225 | #define SMART_GET_VERSION CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) |
| 226 | #define SMART_SEND_DRIVE_COMMAND CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
| 227 | #define SMART_RCV_DRIVE_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 228 | /* End: For _WIN32_WINNT >= 0x0400 */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 229 | |
| 230 | #define IOCTL_SERIAL_LSRMST_INSERT CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) |
| 231 | |
| 232 | |
| 233 | /* Return Codes... should these be the same as something somewhere? */ |
Marcus Meissner | 73458b0 | 1998-12-26 12:54:29 +0000 | [diff] [blame] | 234 | #define PARTITION_ENTRY_UNUSED 0x00 /* Entry unused */ |
| 235 | #define PARTITION_FAT_12 0x01 /* 12-bit FAT entries */ |
| 236 | #define PARTITION_XENIX_1 0x02 /* Xenix */ |
| 237 | #define PARTITION_XENIX_2 0x03 /* Xenix */ |
| 238 | #define PARTITION_FAT_16 0x04 /* 16-bit FAT entries */ |
| 239 | #define PARTITION_EXTENDED 0x05 /* Extended partition entry */ |
| 240 | #define PARTITION_HUGE 0x06 /* Huge partition MS-DOS V4 */ |
| 241 | #define PARTITION_IFS 0x07 /* IFS Partition */ |
Marcus Meissner | ac593bb | 1999-03-17 15:18:28 +0000 | [diff] [blame] | 242 | #define PARTITION_FAT32 0x0B /* FAT32 */ |
Marcus Meissner | 73458b0 | 1998-12-26 12:54:29 +0000 | [diff] [blame] | 243 | #define PARTITION_FAT32_XINT13 0x0C /* FAT32 using extended int13 services */ |
| 244 | #define PARTITION_XINT13 0x0E /* Win95 partition using extended int13 services */ |
| 245 | #define PARTITION_XINT13_EXTENDED 0x0F /* Same as type 5 but uses extended int13 services */ |
| 246 | #define PARTITION_PREP 0x41 /* PowerPC Reference Platform (PReP) Boot Partition */ |
| 247 | #define PARTITION_LDM 0x42 /* Logical Disk Manager partition */ |
| 248 | #define PARTITION_UNIX 0x63 /* Unix */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 249 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 250 | typedef enum _MEDIA_TYPE { |
| 251 | Unknown, F5_1Pt2_512, F3_1Pt44_512, F3_2Pt88_512, F3_20Pt8_512, F3_720_512, F5_360_512, |
| 252 | F5_320_512, F5_320_1024, F5_180_512, F5_160_512, RemovableMedia, FixedMedia, F3_120M_512, |
| 253 | F3_640_512, F5_640_512, F5_720_512, F3_1Pt2_512, F3_1Pt23_1024, F5_1Pt23_1024, F3_128Mb_512, |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 254 | F3_230Mb_512, F8_256_128 |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 255 | } MEDIA_TYPE, *PMEDIA_TYPE; |
| 256 | |
| 257 | typedef struct _FORMAT_PARAMETERS { |
| 258 | MEDIA_TYPE MediaType; |
| 259 | DWORD StartCylinderNumber; |
| 260 | DWORD EndCylinderNumber; |
| 261 | DWORD StartHeadNumber; |
| 262 | DWORD EndHeadNumber; |
| 263 | } FORMAT_PARAMETERS, *PFORMAT_PARAMETERS; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 264 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 265 | typedef WORD BAD_TRACK_NUMBER; |
| 266 | typedef WORD *PBAD_TRACK_NUMBER; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 267 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 268 | typedef struct _FORMAT_EX_PARAMETERS { |
| 269 | MEDIA_TYPE MediaType; |
| 270 | DWORD StartCylinderNumber; |
| 271 | DWORD EndCylinderNumber; |
| 272 | DWORD StartHeadNumber; |
| 273 | DWORD EndHeadNumber; |
| 274 | WORD FormatGapLength; |
| 275 | WORD SectorsPerTrack; |
| 276 | WORD SectorNumber[1]; |
| 277 | } FORMAT_EX_PARAMETERS, *PFORMAT_EX_PARAMETERS; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 278 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 279 | typedef struct _DISK_GEOMETRY { |
| 280 | LARGE_INTEGER Cylinders; |
| 281 | MEDIA_TYPE MediaType; |
| 282 | DWORD TracksPerCylinder; |
| 283 | DWORD SectorsPerTrack; |
| 284 | DWORD BytesPerSector; |
| 285 | } DISK_GEOMETRY, *PDISK_GEOMETRY; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 286 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 287 | typedef struct _PARTITION_INFORMATION { |
| 288 | LARGE_INTEGER StartingOffset; |
| 289 | LARGE_INTEGER PartitionLength; |
| 290 | DWORD HiddenSectors; |
| 291 | DWORD PartitionNumber; |
| 292 | BYTE PartitionType; |
| 293 | BOOLEAN BootIndicator; |
| 294 | BOOLEAN RecognizedPartition; |
| 295 | BOOLEAN RewritePartition; |
| 296 | } PARTITION_INFORMATION, *PPARTITION_INFORMATION; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 297 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 298 | typedef struct _SET_PARTITION_INFORMATION { |
| 299 | BYTE PartitionType; |
| 300 | } SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 301 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 302 | typedef struct _DRIVE_LAYOUT_INFORMATION { |
| 303 | DWORD PartitionCount; |
| 304 | DWORD Signature; |
| 305 | PARTITION_INFORMATION PartitionEntry[1]; |
| 306 | } DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 307 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 308 | typedef struct _VERIFY_INFORMATION { |
| 309 | LARGE_INTEGER StartingOffset; |
| 310 | DWORD Length; |
| 311 | } VERIFY_INFORMATION, *PVERIFY_INFORMATION; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 312 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 313 | typedef struct _REASSIGN_BLOCKS { |
| 314 | WORD Reserved; |
| 315 | WORD Count; |
| 316 | DWORD BlockNumber[1]; |
| 317 | } REASSIGN_BLOCKS, *PREASSIGN_BLOCKS; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 318 | |
Eric Pouech | 5cc6105 | 2002-01-13 01:44:00 +0000 | [diff] [blame] | 319 | #if(_WIN32_WINNT >= 0x0400) |
| 320 | typedef struct _DISK_CONTROLLER_NUMBER { |
| 321 | DWORD ControllerNumber; |
| 322 | DWORD DiskNumber; |
| 323 | } DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER; |
| 324 | #endif /* _WIN32_WINNT >= 0x0400 */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 325 | |
| 326 | /* Device Io Stuff - Most VxD support. |
| 327 | * NOTE: All VxD messages seem to start with a hiword or 0 |
| 328 | */ |
| 329 | typedef struct tagDIOCRegs { |
| 330 | DWORD reg_EBX; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 331 | DWORD reg_EDX; |
| 332 | DWORD reg_ECX; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 333 | DWORD reg_EAX; |
| 334 | DWORD reg_EDI; |
| 335 | DWORD reg_ESI; |
| 336 | DWORD reg_Flags; |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 337 | } DIOC_REGISTERS, *PDIOC_REGISTERS; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 338 | |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 339 | /* Start VWIN32 information: |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 340 | * VWIN32 is a VxD which supports the MSDOS Io routines. |
| 341 | */ |
| 342 | #define VWIN32_DIOC_DOS_IOCTL 1 /* This is the specified MS-DOS device I/O ctl - Interrupt 21h Function 4400h - 4411h */ |
| 343 | #define VWIN32_DIOC_DOS_INT25 2 /* This is the Absolute Disk Read command - Interrupt 25h */ |
| 344 | #define VWIN32_DIOC_DOS_INT26 3 /* This is the Absolute Disk Write command - Interrupt 25h */ |
| 345 | #define VWIN32_DIOC_DOS_INT13 4 /* This is Interrupt 13h commands */ |
Ulrich Weigand | 1298062 | 1998-11-25 10:20:03 +0000 | [diff] [blame] | 346 | #define VWIN32_DIOC_SIMCTRLC 5 /* Simulate Ctrl-C */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 347 | #define VWIN32_DIOC_DOS_DRIVEINFO 6 /* This is Interrupt 21h Function 730X commands */ |
| 348 | |
| 349 | /* Important: All MS_DOS data structures must be packed on a one-byte boundary - good old 16 bit. */ |
| 350 | |
Dimitrie O. Paun | 53f9c21 | 2003-08-28 21:43:34 +0000 | [diff] [blame] | 351 | #include <pshpack1.h> |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 352 | typedef struct tagMID { |
| 353 | WORD midInfoLevel; |
| 354 | DWORD midSerialNum; |
| 355 | BYTE midVolLabel[11]; |
| 356 | BYTE midFileSysType[8]; |
| 357 | } MID, *PMID; |
Dimitrie O. Paun | 53f9c21 | 2003-08-28 21:43:34 +0000 | [diff] [blame] | 358 | #include <poppack.h> |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 359 | |
| 360 | /* End VWIN32 information */ |
| 361 | |
Juergen Schmied | 76a9fa1 | 2002-05-09 19:40:30 +0000 | [diff] [blame] | 362 | /* |
| 363 | * NT I/O-Manager |
| 364 | */ |
| 365 | |
| 366 | /* |
| 367 | * structures for NtQueryVolumeInformationFile |
| 368 | * (wdm.h) |
| 369 | */ |
| 370 | |
| 371 | /* FileFsVolumeInformation = 1 */ |
| 372 | typedef struct _FILE_FS_VOLUME_INFORMATION { |
| 373 | LARGE_INTEGER VolumeCreationTime; |
| 374 | ULONG VolumeSerialNumber; |
| 375 | ULONG VolumeLabelLength; |
| 376 | BOOLEAN SupportsObjects; |
| 377 | WCHAR VolumeLabel[1]; |
| 378 | } FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION; |
| 379 | |
| 380 | /* FileFsLabelInformation = 2 */ |
| 381 | /* |
Vincent Béron | 9a62491 | 2002-05-31 23:06:46 +0000 | [diff] [blame] | 382 | unknown |
Juergen Schmied | 76a9fa1 | 2002-05-09 19:40:30 +0000 | [diff] [blame] | 383 | */ |
| 384 | |
| 385 | /* FileFsSizeInformation = 3 */ |
| 386 | typedef struct _FILE_FS_SIZE_INFORMATION { |
| 387 | LARGE_INTEGER TotalAllocationUnits; |
| 388 | LARGE_INTEGER AvailableAllocationUnits; |
| 389 | ULONG SectorsPerAllocationUnit; |
| 390 | ULONG BytesPerSector; |
| 391 | } FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION; |
| 392 | |
| 393 | /* FileFsDeviceInformation = 4 */ |
| 394 | typedef struct _FILE_FS_DEVICE_INFORMATION { |
| 395 | DEVICE_TYPE DeviceType; |
| 396 | ULONG Characteristics; |
| 397 | } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION; |
| 398 | |
| 399 | /* FileFsAttributeInformation = 5 */ |
| 400 | typedef struct _FILE_FS_ATTRIBUTE_INFORMATION { |
| 401 | ULONG FileSystemAttribute; |
| 402 | LONG MaximumComponentNameLength; |
| 403 | ULONG FileSystemNameLength; |
| 404 | WCHAR FileSystemName[1]; |
| 405 | } FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION; |
| 406 | |
Vitaliy Margolen | b05340a | 2005-12-14 11:14:02 +0100 | [diff] [blame] | 407 | typedef struct _FILE_PIPE_WAIT_FOR_BUFFER { |
| 408 | LARGE_INTEGER Timeout; |
| 409 | ULONG NameLength; |
| 410 | BOOLEAN TimeoutSpecified; |
| 411 | WCHAR Name[1]; |
| 412 | } FILE_PIPE_WAIT_FOR_BUFFER, *PFILE_PIPE_WAIT_FOR_BUFFER; |
| 413 | |
Juan Lang | 47f1c88 | 2005-03-01 11:44:27 +0000 | [diff] [blame] | 414 | /* Device GUIDs */ |
| 415 | #ifdef DEFINE_GUID |
Juergen Schmied | 76a9fa1 | 2002-05-09 19:40:30 +0000 | [diff] [blame] | 416 | |
Juan Lang | 47f1c88 | 2005-03-01 11:44:27 +0000 | [diff] [blame] | 417 | DEFINE_GUID(GUID_DEVINTERFACE_COMPORT, 0x86E0D1E0L, 0x8089, |
| 418 | 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73); |
| 419 | DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4D36E978L, 0xE325, |
| 420 | 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18); |
| 421 | |
| 422 | /* obsolete GUID names */ |
| 423 | #define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT |
| 424 | #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR |
| 425 | |
| 426 | #endif /* DEFINE_GUID */ |
Juergen Schmied | 76a9fa1 | 2002-05-09 19:40:30 +0000 | [diff] [blame] | 427 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 428 | #endif |