1adee6784SGordon Ross /* 2adee6784SGordon Ross * CDDL HEADER START 3adee6784SGordon Ross * 4adee6784SGordon Ross * The contents of this file are subject to the terms of the 5adee6784SGordon Ross * Common Development and Distribution License (the "License"). 6adee6784SGordon Ross * You may not use this file except in compliance with the License. 7adee6784SGordon Ross * 8adee6784SGordon Ross * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9adee6784SGordon Ross * or http://www.opensolaris.org/os/licensing. 10adee6784SGordon Ross * See the License for the specific language governing permissions 11adee6784SGordon Ross * and limitations under the License. 12adee6784SGordon Ross * 13adee6784SGordon Ross * When distributing Covered Code, include this CDDL HEADER in each 14adee6784SGordon Ross * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15adee6784SGordon Ross * If applicable, add the following below this CDDL HEADER, with the 16adee6784SGordon Ross * fields enclosed by brackets "[]" replaced with your own identifying 17adee6784SGordon Ross * information: Portions Copyright [yyyy] [name of copyright owner] 18adee6784SGordon Ross * 19adee6784SGordon Ross * CDDL HEADER END 20adee6784SGordon Ross */ 21adee6784SGordon Ross /* 22adee6784SGordon Ross * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23adee6784SGordon Ross * Use is subject to license terms. 24adee6784SGordon Ross * 25adee6784SGordon Ross * Copyright 2018 Nexenta Systems, Inc. All rights reserved. 26*08f2ce59SGordon Ross * Copyright 2022 RackTop Systems, Inc. 27adee6784SGordon Ross */ 28adee6784SGordon Ross #ifndef _SMB_WINIOCTL_H 29adee6784SGordon Ross #define _SMB_WINIOCTL_H 30adee6784SGordon Ross 31adee6784SGordon Ross /* 32adee6784SGordon Ross * Standard Windows NT IOCTL/FSCTL definitions (derived from the VC++ 33adee6784SGordon Ross * include file of the same name). 34adee6784SGordon Ross */ 35adee6784SGordon Ross 36adee6784SGordon Ross #ifdef __cplusplus 37adee6784SGordon Ross extern "C" { 38adee6784SGordon Ross #endif 39adee6784SGordon Ross 40adee6784SGordon Ross #ifndef _DEVIOCTL_ 41adee6784SGordon Ross #define _DEVIOCTL_ 42adee6784SGordon Ross 43adee6784SGordon Ross /* 44adee6784SGordon Ross * begin_ntddk begin_wdm begin_nthal begin_ntifs 45adee6784SGordon Ross * 46adee6784SGordon Ross * Define the various device type values. Note that values used by Microsoft 47adee6784SGordon Ross * Corporation are in the range 0-32767, and 32768-65535 are reserved for use 48adee6784SGordon Ross * by customers. 49adee6784SGordon Ross */ 50adee6784SGordon Ross 51adee6784SGordon Ross #define DEVICE_TYPE DWORD 52adee6784SGordon Ross 53adee6784SGordon Ross #define FILE_DEVICE_BEEP 0x00000001 54adee6784SGordon Ross #define FILE_DEVICE_CD_ROM 0x00000002 55adee6784SGordon Ross #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 56adee6784SGordon Ross #define FILE_DEVICE_CONTROLLER 0x00000004 57adee6784SGordon Ross #define FILE_DEVICE_DATALINK 0x00000005 58adee6784SGordon Ross #define FILE_DEVICE_DFS 0x00000006 59adee6784SGordon Ross #define FILE_DEVICE_DISK 0x00000007 60adee6784SGordon Ross #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 61adee6784SGordon Ross #define FILE_DEVICE_FILE_SYSTEM 0x00000009 62adee6784SGordon Ross #define FILE_DEVICE_INPORT_PORT 0x0000000a 63adee6784SGordon Ross #define FILE_DEVICE_KEYBOARD 0x0000000b 64adee6784SGordon Ross #define FILE_DEVICE_MAILSLOT 0x0000000c 65adee6784SGordon Ross #define FILE_DEVICE_MIDI_IN 0x0000000d 66adee6784SGordon Ross #define FILE_DEVICE_MIDI_OUT 0x0000000e 67adee6784SGordon Ross #define FILE_DEVICE_MOUSE 0x0000000f 68adee6784SGordon Ross #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 69adee6784SGordon Ross #define FILE_DEVICE_NAMED_PIPE 0x00000011 70adee6784SGordon Ross #define FILE_DEVICE_NETWORK 0x00000012 71adee6784SGordon Ross #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 72adee6784SGordon Ross #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 73adee6784SGordon Ross #define FILE_DEVICE_NULL 0x00000015 74adee6784SGordon Ross #define FILE_DEVICE_PARALLEL_PORT 0x00000016 75adee6784SGordon Ross #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 76adee6784SGordon Ross #define FILE_DEVICE_PRINTER 0x00000018 77adee6784SGordon Ross #define FILE_DEVICE_SCANNER 0x00000019 78adee6784SGordon Ross #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a 79adee6784SGordon Ross #define FILE_DEVICE_SERIAL_PORT 0x0000001b 80adee6784SGordon Ross #define FILE_DEVICE_SCREEN 0x0000001c 81adee6784SGordon Ross #define FILE_DEVICE_SOUND 0x0000001d 82adee6784SGordon Ross #define FILE_DEVICE_STREAMS 0x0000001e 83adee6784SGordon Ross #define FILE_DEVICE_TAPE 0x0000001f 84adee6784SGordon Ross #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 85adee6784SGordon Ross #define FILE_DEVICE_TRANSPORT 0x00000021 86adee6784SGordon Ross #define FILE_DEVICE_UNKNOWN 0x00000022 87adee6784SGordon Ross #define FILE_DEVICE_VIDEO 0x00000023 88adee6784SGordon Ross #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 89adee6784SGordon Ross #define FILE_DEVICE_WAVE_IN 0x00000025 90adee6784SGordon Ross #define FILE_DEVICE_WAVE_OUT 0x00000026 91adee6784SGordon Ross #define FILE_DEVICE_8042_PORT 0x00000027 92adee6784SGordon Ross #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 93adee6784SGordon Ross #define FILE_DEVICE_BATTERY 0x00000029 94adee6784SGordon Ross #define FILE_DEVICE_BUS_EXTENDER 0x0000002a 95adee6784SGordon Ross #define FILE_DEVICE_MODEM 0x0000002b 96adee6784SGordon Ross #define FILE_DEVICE_VDM 0x0000002c 97adee6784SGordon Ross #define FILE_DEVICE_MASS_STORAGE 0x0000002d 98adee6784SGordon Ross #define FILE_DEVICE_SMB 0x0000002e 99adee6784SGordon Ross #define FILE_DEVICE_KS 0x0000002f 100adee6784SGordon Ross #define FILE_DEVICE_CHANGER 0x00000030 101adee6784SGordon Ross #define FILE_DEVICE_SMARTCARD 0x00000031 102adee6784SGordon Ross #define FILE_DEVICE_ACPI 0x00000032 103adee6784SGordon Ross #define FILE_DEVICE_DVD 0x00000033 104adee6784SGordon Ross #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 105adee6784SGordon Ross #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 106adee6784SGordon Ross #define FILE_DEVICE_DFS_VOLUME 0x00000036 107adee6784SGordon Ross 108adee6784SGordon Ross /* 109adee6784SGordon Ross * Macro definition for defining IOCTL and FSCTL function control codes. Note 110adee6784SGordon Ross * that function codes 0-2047 are reserved for Microsoft Corporation, and 111adee6784SGordon Ross * 2048-4095 are reserved for customers. 112adee6784SGordon Ross */ 113adee6784SGordon Ross 114adee6784SGordon Ross #define CTL_CODE(DeviceType, Function, Method, Access) \ 115adee6784SGordon Ross (((DeviceType) << 16) | ((Access) << 14) | \ 116adee6784SGordon Ross ((Function) << 2) | (Method)) 117adee6784SGordon Ross 118adee6784SGordon Ross /* 119adee6784SGordon Ross * Define the method codes for how buffers are passed for I/O and FS controls 120adee6784SGordon Ross */ 121adee6784SGordon Ross 122adee6784SGordon Ross #define METHOD_BUFFERED 0 123adee6784SGordon Ross #define METHOD_IN_DIRECT 1 124adee6784SGordon Ross #define METHOD_OUT_DIRECT 2 125adee6784SGordon Ross #define METHOD_NEITHER 3 126adee6784SGordon Ross 127adee6784SGordon Ross /* 128adee6784SGordon Ross * Define the access check value for any access 129adee6784SGordon Ross */ 130adee6784SGordon Ross 131adee6784SGordon Ross #define FILE_ANY_ACCESS 0 132adee6784SGordon Ross #define FILE_READ_ACCESS 0x0001 /* file & pipe */ 133adee6784SGordon Ross #define FILE_WRITE_ACCESS 0x0002 /* file & pipe */ 134adee6784SGordon Ross 135adee6784SGordon Ross /* end_ntddk end_wdm end_nthal end_ntifs */ 136adee6784SGordon Ross 137adee6784SGordon Ross #endif /* _DEVIOCTL_ */ 138adee6784SGordon Ross 139adee6784SGordon Ross 140adee6784SGordon Ross #ifndef _NTDDSTOR_H_ 141adee6784SGordon Ross #define _NTDDSTOR_H_ 142adee6784SGordon Ross 143adee6784SGordon Ross #ifdef __cplusplus 144adee6784SGordon Ross extern "C" { 145adee6784SGordon Ross #endif 146adee6784SGordon Ross 147adee6784SGordon Ross /* 148adee6784SGordon Ross * IoControlCode values for storage devices 149adee6784SGordon Ross */ 150adee6784SGordon Ross 151adee6784SGordon Ross #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE 152adee6784SGordon Ross 153adee6784SGordon Ross /* 154adee6784SGordon Ross * The following device control codes are common for all class drivers. They 155adee6784SGordon Ross * should be used in place of the older IOCTL_DISK, IOCTL_CDROM and IOCTL_TAPE 156adee6784SGordon Ross * common codes 157adee6784SGordon Ross */ 158adee6784SGordon Ross 159adee6784SGordon Ross #define IOCTL_STORAGE_CHECK_VERIFY \ 160adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) 161adee6784SGordon Ross #define IOCTL_STORAGE_MEDIA_REMOVAL \ 162adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) 163adee6784SGordon Ross #define IOCTL_STORAGE_EJECT_MEDIA \ 164adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) 165adee6784SGordon Ross #define IOCTL_STORAGE_LOAD_MEDIA \ 166adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) 167adee6784SGordon Ross #define IOCTL_STORAGE_RESERVE \ 168adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) 169adee6784SGordon Ross #define IOCTL_STORAGE_RELEASE \ 170adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) 171adee6784SGordon Ross #define IOCTL_STORAGE_FIND_NEW_DEVICES \ 172adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) 173adee6784SGordon Ross 174adee6784SGordon Ross #define IOCTL_STORAGE_GET_MEDIA_TYPES \ 175adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) 176adee6784SGordon Ross #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \ 177adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) 178adee6784SGordon Ross 179adee6784SGordon Ross #define IOCTL_STORAGE_RESET_BUS \ 180adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) 181adee6784SGordon Ross #define IOCTL_STORAGE_RESET_DEVICE \ 182adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) 183adee6784SGordon Ross 184adee6784SGordon Ross #define IOCTL_STORAGE_GET_DEVICE_NUMBER \ 185adee6784SGordon Ross CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) 186adee6784SGordon Ross 187adee6784SGordon Ross 188adee6784SGordon Ross #ifdef __cplusplus 189adee6784SGordon Ross } 190adee6784SGordon Ross #endif 191adee6784SGordon Ross #endif /* _NTDDSTOR_H_ */ 192adee6784SGordon Ross 193adee6784SGordon Ross /* 194adee6784SGordon Ross * IoControlCode values for disk devices. 195adee6784SGordon Ross */ 196adee6784SGordon Ross 197adee6784SGordon Ross #define IOCTL_DISK_BASE FILE_DEVICE_DISK 198adee6784SGordon Ross #define IOCTL_DISK_GET_DRIVE_GEOMETRY \ 199adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) 200adee6784SGordon Ross #define IOCTL_DISK_GET_PARTITION_INFO \ 201adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 202adee6784SGordon Ross #define IOCTL_DISK_SET_PARTITION_INFO \ 203adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, \ 204adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 205adee6784SGordon Ross #define IOCTL_DISK_GET_DRIVE_LAYOUT \ 206adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) 207adee6784SGordon Ross #define IOCTL_DISK_SET_DRIVE_LAYOUT \ 208adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, \ 209adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 210adee6784SGordon Ross #define IOCTL_DISK_VERIFY \ 211adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) 212adee6784SGordon Ross #define IOCTL_DISK_FORMAT_TRACKS \ 213adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, \ 214adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 215adee6784SGordon Ross #define IOCTL_DISK_REASSIGN_BLOCKS \ 216adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, \ 217adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 218adee6784SGordon Ross #define IOCTL_DISK_PERFORMANCE \ 219adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) 220adee6784SGordon Ross #define IOCTL_DISK_IS_WRITABLE \ 221adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) 222adee6784SGordon Ross #define IOCTL_DISK_LOGGING \ 223adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) 224adee6784SGordon Ross #define IOCTL_DISK_FORMAT_TRACKS_EX \ 225adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, \ 226adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 227adee6784SGordon Ross #define IOCTL_DISK_HISTOGRAM_STRUCTURE \ 228adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) 229adee6784SGordon Ross #define IOCTL_DISK_HISTOGRAM_DATA \ 230adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) 231adee6784SGordon Ross #define IOCTL_DISK_HISTOGRAM_RESET \ 232adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) 233adee6784SGordon Ross #define IOCTL_DISK_REQUEST_STRUCTURE \ 234adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) 235adee6784SGordon Ross #define IOCTL_DISK_REQUEST_DATA \ 236adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) 237adee6784SGordon Ross #define IOCTL_DISK_CONTROLLER_NUMBER \ 238adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) 239adee6784SGordon Ross 240adee6784SGordon Ross /* 241adee6784SGordon Ross * IOCTL support for SMART drive fault prediction. 242adee6784SGordon Ross */ 243adee6784SGordon Ross 244adee6784SGordon Ross #define SMART_GET_VERSION \ 245adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) 246adee6784SGordon Ross #define SMART_SEND_DRIVE_COMMAND \ 247adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, \ 248adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 249adee6784SGordon Ross #define SMART_RCV_DRIVE_DATA \ 250adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, \ 251adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 252adee6784SGordon Ross 253adee6784SGordon Ross 254adee6784SGordon Ross /* 255adee6784SGordon Ross * The following device control codes are common for all class drivers. The 256adee6784SGordon Ross * functions codes defined here must match all of the other class drivers. 257adee6784SGordon Ross * 258adee6784SGordon Ross * Warning: these codes will be replaced in the future by equivalent 259adee6784SGordon Ross * IOCTL_STORAGE codes 260adee6784SGordon Ross */ 261adee6784SGordon Ross 262adee6784SGordon Ross #define IOCTL_DISK_CHECK_VERIFY \ 263adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) 264adee6784SGordon Ross #define IOCTL_DISK_MEDIA_REMOVAL \ 265adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) 266adee6784SGordon Ross #define IOCTL_DISK_EJECT_MEDIA \ 267adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) 268adee6784SGordon Ross #define IOCTL_DISK_LOAD_MEDIA \ 269adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) 270adee6784SGordon Ross #define IOCTL_DISK_RESERVE \ 271adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) 272adee6784SGordon Ross #define IOCTL_DISK_RELEASE \ 273adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) 274adee6784SGordon Ross #define IOCTL_DISK_FIND_NEW_DEVICES \ 275adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) 276adee6784SGordon Ross #define IOCTL_DISK_GET_MEDIA_TYPES \ 277adee6784SGordon Ross CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) 278adee6784SGordon Ross 279adee6784SGordon Ross #define IOCTL_CHANGER_BASE FILE_DEVICE_CHANGER 280adee6784SGordon Ross 281adee6784SGordon Ross #define IOCTL_CHANGER_GET_PARAMETERS \ 282adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) 283adee6784SGordon Ross #define IOCTL_CHANGER_GET_STATUS \ 284adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) 285adee6784SGordon Ross #define IOCTL_CHANGER_GET_PRODUCT_DATA \ 286adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) 287adee6784SGordon Ross #define IOCTL_CHANGER_SET_ACCESS \ 288adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, \ 289adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 290adee6784SGordon Ross #define IOCTL_CHANGER_GET_ELEMENT_STATUS \ 291adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, \ 292adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 293adee6784SGordon Ross #define IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS \ 294adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS) 295adee6784SGordon Ross #define IOCTL_CHANGER_SET_POSITION \ 296adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) 297adee6784SGordon Ross #define IOCTL_CHANGER_EXCHANGE_MEDIUM \ 298adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) 299adee6784SGordon Ross #define IOCTL_CHANGER_MOVE_MEDIUM \ 300adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS) 301adee6784SGordon Ross #define IOCTL_CHANGER_REINITIALIZE_TRANSPORT \ 302adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS) 303adee6784SGordon Ross #define IOCTL_CHANGER_QUERY_VOLUME_TAGS \ 304adee6784SGordon Ross CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, \ 305adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 306adee6784SGordon Ross 307adee6784SGordon Ross #ifndef _FILESYSTEMFSCTL_ 308adee6784SGordon Ross #define _FILESYSTEMFSCTL_ 309adee6784SGordon Ross /* 310adee6784SGordon Ross * The following is a list of the native file system fsctls followed by 311adee6784SGordon Ross * additional network file system fsctls, DFS fsctls and Named Pipe fsctls. 312adee6784SGordon Ross * Some values have been decommissioned. 313adee6784SGordon Ross */ 314adee6784SGordon Ross 315adee6784SGordon Ross /* FILE_DEVICE_FILE_SYSTEM */ 316adee6784SGordon Ross #define FSCTL_REQUEST_OPLOCK_LEVEL_1 \ 317adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) 318adee6784SGordon Ross #define FSCTL_REQUEST_OPLOCK_LEVEL_2 \ 319adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) 320adee6784SGordon Ross #define FSCTL_REQUEST_BATCH_OPLOCK \ 321adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) 322adee6784SGordon Ross #define FSCTL_OPLOCK_BREAK_ACKNOWLEDGE \ 323adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) 324adee6784SGordon Ross #define FSCTL_OPBATCH_ACK_CLOSE_PENDING \ 325adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) 326adee6784SGordon Ross #define FSCTL_OPLOCK_BREAK_NOTIFY \ 327adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) 328adee6784SGordon Ross #define FSCTL_LOCK_VOLUME \ 329adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) 330adee6784SGordon Ross #define FSCTL_UNLOCK_VOLUME \ 331adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) 332adee6784SGordon Ross #define FSCTL_DISMOUNT_VOLUME \ 333adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) 334adee6784SGordon Ross /* decommissioned fsctl value 9 */ 335adee6784SGordon Ross #define FSCTL_IS_VOLUME_MOUNTED \ 336adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) 337adee6784SGordon Ross /* PATHNAME_BUFFER, */ 338adee6784SGordon Ross #define FSCTL_IS_PATHNAME_VALID \ 339adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) 340adee6784SGordon Ross #define FSCTL_MARK_VOLUME_DIRTY \ 341adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) 342adee6784SGordon Ross /* decommissioned fsctl value 13 */ 343adee6784SGordon Ross #define FSCTL_QUERY_RETRIEVAL_POINTERS \ 344adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) 345adee6784SGordon Ross #define FSCTL_GET_COMPRESSION \ 346adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) 347adee6784SGordon Ross #define FSCTL_SET_COMPRESSION \ 348adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, \ 349adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 350adee6784SGordon Ross /* decommissioned fsctl value 17 */ 351adee6784SGordon Ross /* decommissioned fsctl value 18 */ 352adee6784SGordon Ross #define FSCTL_MARK_AS_SYSTEM_HIVE \ 353adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) 354adee6784SGordon Ross #define FSCTL_OPLOCK_BREAK_ACK_NO_2 \ 355adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) 356adee6784SGordon Ross #define FSCTL_INVALIDATE_VOLUMES \ 357adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) 358adee6784SGordon Ross /* FSCTL_QUERY_FAT_BPB_BUFFER */ 359adee6784SGordon Ross #define FSCTL_QUERY_FAT_BPB \ 360adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) 361adee6784SGordon Ross #define FSCTL_REQUEST_FILTER_OPLOCK \ 362adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) 363adee6784SGordon Ross /* FILESYSTEM_STATISTICS */ 364adee6784SGordon Ross #define FSCTL_FILESYSTEM_GET_STATISTICS \ 365adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) 366adee6784SGordon Ross /* NTFS_VOLUME_DATA_BUFFER */ 367adee6784SGordon Ross #define FSCTL_GET_NTFS_VOLUME_DATA \ 368adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) 369adee6784SGordon Ross /* NTFS_FILE_RECORD_INPUT_BUFFER, NTFS_FILE_RECORD_OUTPUT_BUFFER */ 370adee6784SGordon Ross #define FSCTL_GET_NTFS_FILE_RECORD \ 371adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) 372adee6784SGordon Ross /* STARTING_LCN_INPUT_BUFFER, VOLUME_BITMAP_BUFFER */ 373adee6784SGordon Ross #define FSCTL_GET_VOLUME_BITMAP \ 374adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) 375adee6784SGordon Ross /* STARTING_VCN_INPUT_BUFFER, RETRIEVAL_POINTERS_BUFFER */ 376adee6784SGordon Ross #define FSCTL_GET_RETRIEVAL_POINTERS \ 377adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) 378adee6784SGordon Ross /* MOVE_FILE_DATA, */ 379adee6784SGordon Ross #define FSCTL_MOVE_FILE \ 380adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_ANY_ACCESS) 381adee6784SGordon Ross #define FSCTL_IS_VOLUME_DIRTY \ 382adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) 383adee6784SGordon Ross #define FSCTL_GET_HFS_INFORMATION \ 384adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) 385adee6784SGordon Ross #define FSCTL_ALLOW_EXTENDED_DASD_IO \ 386adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) 387adee6784SGordon Ross #define FSCTL_READ_PROPERTY_DATA \ 388adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS) 389adee6784SGordon Ross #define FSCTL_WRITE_PROPERTY_DATA \ 390adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS) 391adee6784SGordon Ross #define FSCTL_FIND_FILES_BY_SID \ 392adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) 393adee6784SGordon Ross /* decommissioned fsctl value 36 */ 394adee6784SGordon Ross #define FSCTL_DUMP_PROPERTY_DATA \ 395adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS) 396adee6784SGordon Ross /* FILE_OBJECTID_BUFFER */ 397adee6784SGordon Ross #define FSCTL_SET_OBJECT_ID \ 398adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_ANY_ACCESS) 399adee6784SGordon Ross /* FILE_OBJECTID_BUFFER */ 400adee6784SGordon Ross #define FSCTL_GET_OBJECT_ID \ 401adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) 402adee6784SGordon Ross #define FSCTL_DELETE_OBJECT_ID \ 403adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_ANY_ACCESS) 404adee6784SGordon Ross /* REPARSE_DATA_BUFFER, */ 405adee6784SGordon Ross #define FSCTL_SET_REPARSE_POINT \ 406adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS) 407adee6784SGordon Ross /* REPARSE_DATA_BUFFER */ 408adee6784SGordon Ross #define FSCTL_GET_REPARSE_POINT \ 409adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) 410adee6784SGordon Ross /* REPARSE_DATA_BUFFER, */ 411adee6784SGordon Ross #define FSCTL_DELETE_REPARSE_POINT \ 412adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS) 413adee6784SGordon Ross /* MFT_ENUM_DATA, */ 414adee6784SGordon Ross #define FSCTL_ENUM_USN_DATA \ 415adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_READ_ACCESS) 416adee6784SGordon Ross /* BULK_SECURITY_TEST_DATA, */ 417adee6784SGordon Ross #define FSCTL_SECURITY_ID_CHECK \ 418adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_ACCESS) 419adee6784SGordon Ross /* READ_USN_JOURNAL_DATA, USN */ 420adee6784SGordon Ross #define FSCTL_READ_USN_JOURNAL \ 421adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_READ_ACCESS) 422adee6784SGordon Ross #define FSCTL_SET_OBJECT_ID_EXTENDED \ 423adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_ANY_ACCESS) 424adee6784SGordon Ross /* FILE_OBJECTID_BUFFER */ 425adee6784SGordon Ross #define FSCTL_CREATE_OR_GET_OBJECT_ID \ 426adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) 427adee6784SGordon Ross #define FSCTL_SET_SPARSE \ 428adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_ANY_ACCESS) 429adee6784SGordon Ross /* FILE_ZERO_DATA_INFORMATION, */ 430adee6784SGordon Ross #define FSCTL_SET_ZERO_DATA \ 431adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_ACCESS) 432adee6784SGordon Ross /* FILE_ALLOCATED_RANGE_BUFFER, FILE_ALLOCATED_RANGE_BUFFER */ 433adee6784SGordon Ross #define FSCTL_QUERY_ALLOCATED_RANGES \ 434adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_ACCESS) 435adee6784SGordon Ross #define FSCTL_ENABLE_UPGRADE \ 436adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 52, METHOD_BUFFERED, FILE_WRITE_ACCESS) 437adee6784SGordon Ross /* ENCRYPTION_BUFFER, */ 438adee6784SGordon Ross #define FSCTL_SET_ENCRYPTION \ 439adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) 440adee6784SGordon Ross #define FSCTL_ENCRYPTION_FSCTL_IO \ 441adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) 442adee6784SGordon Ross /* ENCRYPTED_DATA_INFO, */ 443adee6784SGordon Ross #define FSCTL_WRITE_RAW_ENCRYPTED \ 444adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_ANY_ACCESS) 445adee6784SGordon Ross /* REQUEST_RAW_ENCRYPTED_DATA, ENCRYPTED_DATA_INFO */ 446adee6784SGordon Ross #define FSCTL_READ_RAW_ENCRYPTED \ 447adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_ANY_ACCESS) 448adee6784SGordon Ross /* CREATE_USN_JOUNRAL_DATA, */ 449adee6784SGordon Ross #define FSCTL_CREATE_USN_JOURNAL \ 450adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_READ_ACCESS) 451adee6784SGordon Ross /* Read the Usn Record for a file */ 452adee6784SGordon Ross #define FSCTL_READ_FILE_USN_DATA \ 453adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) 454adee6784SGordon Ross /* Generate Close Usn Record */ 455adee6784SGordon Ross #define FSCTL_WRITE_USN_CLOSE_RECORD \ 456adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) 457adee6784SGordon Ross #define FSCTL_EXTEND_VOLUME \ 458adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) 459adee6784SGordon Ross #define FSCTL_SIS_COPYFILE \ 460adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS) 461adee6784SGordon Ross #define FSCTL_RECALL_FILE \ 462adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS) 463adee6784SGordon Ross #define FSCTL_SET_DEFECT_MANAGEMENT \ 464adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_ACCESS) 465adee6784SGordon Ross #define FSCTL_QUERY_SPARING_INFO \ 466adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) 467adee6784SGordon Ross #define FSCTL_QUERY_ON_DISK_VOLUME_INFO \ 468adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) 469adee6784SGordon Ross #define FSCTL_SET_ZERO_ON_DEALLOCATION \ 470adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_ANY_ACCESS) 471adee6784SGordon Ross #define FSCTL_SET_SHORT_NAME_BEHAVIOR \ 472adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) 473adee6784SGordon Ross #define FSCTL_FILE_LEVEL_TRIM \ 474adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_ACCESS) 475adee6784SGordon Ross #define FSCTL_OFFLOAD_READ \ 476adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS) 477adee6784SGordon Ross #define FSCTL_OFFLOAD_WRITE \ 478adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS) 479adee6784SGordon Ross #define FSCTL_GET_INTEGRITY_INFORMATION \ 480adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS) 481adee6784SGordon Ross #define FSCTL_SET_INTEGRITY_INFORMATION \ 482adee6784SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, \ 483adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 48455f0a249SGordon Ross #define FSCTL_QUERY_FILE_REGIONS \ 48555f0a249SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS) 486adee6784SGordon Ross 487*08f2ce59SGordon Ross #define FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT \ 488*08f2ce59SGordon Ross CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 272, METHOD_BUFFERED, FILE_ANY_ACCESS) 489*08f2ce59SGordon Ross 490adee6784SGordon Ross /* FILE_DEVICE_NETWORK_FILE_SYSTEM */ 491adee6784SGordon Ross /* Read the snapshot info for Volume Shadow Copy Services */ 492adee6784SGordon Ross #define FSCTL_SRV_ENUMERATE_SNAPSHOTS \ 493adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x19, \ 494adee6784SGordon Ross METHOD_BUFFERED, FILE_READ_ACCESS) 495adee6784SGordon Ross /* Retrieve an opaque file reference for server-side data movement */ 496adee6784SGordon Ross #define FSCTL_SRV_REQUEST_RESUME_KEY \ 497adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x1e, \ 498adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 499adee6784SGordon Ross #define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION \ 500adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3a, \ 501adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 502adee6784SGordon Ross #define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION \ 503adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3b, \ 504adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 505adee6784SGordon Ross /* server-side data movement */ 506adee6784SGordon Ross #define FSCTL_SRV_COPYCHUNK \ 507adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3c, \ 508adee6784SGordon Ross METHOD_OUT_DIRECT, FILE_READ_ACCESS) 509adee6784SGordon Ross /* server-side data movement */ 510adee6784SGordon Ross #define FSCTL_SRV_COPYCHUNK_WRITE \ 511adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3c, \ 512adee6784SGordon Ross METHOD_OUT_DIRECT, FILE_WRITE_ACCESS) 513adee6784SGordon Ross #define FSCTL_SRV_NOTIFY_TRANSACTION \ 514adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x46, \ 515adee6784SGordon Ross METHOD_BUFFERED, FILE_WRITE_ACCESS) 516adee6784SGordon Ross #define FSCTL_SRV_READ_HASH \ 517adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x6e, \ 518adee6784SGordon Ross METHOD_NEITHER, FILE_READ_ACCESS) 519adee6784SGordon Ross #define FSCTL_SRV_UNKNOWN_x71 \ 520adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x71, \ 521adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 522adee6784SGordon Ross #define FSCTL_LMR_REQUEST_RESILIENCY \ 523adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x75, \ 524adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 525adee6784SGordon Ross #define FSCTL_QUERY_NETWORK_INTERFACE_INFO \ 526adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x7f, \ 527adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 528adee6784SGordon Ross #define FSCTL_VALIDATE_NEGOTIATE_INFO \ 529adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x81, \ 530adee6784SGordon Ross METHOD_BUFFERED, FILE_ANY_ACCESS) 531adee6784SGordon Ross 532adee6784SGordon Ross /* FILE_DEVICE_DFS */ 533adee6784SGordon Ross #define FSCTL_DFS_GET_REFERRALS \ 534adee6784SGordon Ross CTL_CODE(FILE_DEVICE_DFS, 0x65, METHOD_BUFFERED, FILE_ANY_ACCESS) 535adee6784SGordon Ross #define FSCTL_DFS_GET_REFERRALS_EX \ 536adee6784SGordon Ross CTL_CODE(FILE_DEVICE_DFS, 0x6c, METHOD_BUFFERED, FILE_ANY_ACCESS) 537adee6784SGordon Ross 538adee6784SGordon Ross /* FILE_DEVICE_NAMED_PIPE */ 539adee6784SGordon Ross #define FSCTL_PIPE_PEEK \ 540adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS) 541adee6784SGordon Ross #define FSCTL_PIPE_TRANSCEIVE \ 542adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, \ 543adee6784SGordon Ross FILE_READ_ACCESS | FILE_WRITE_ACCESS) 544adee6784SGordon Ross #define FSCTL_PIPE_WAIT \ 545adee6784SGordon Ross CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) 546adee6784SGordon Ross 547adee6784SGordon Ross #endif /* _FILESYSTEMFSCTL_ */ 548adee6784SGordon Ross 549adee6784SGordon Ross #ifdef __cplusplus 550adee6784SGordon Ross } 551adee6784SGordon Ross #endif 552adee6784SGordon Ross 553adee6784SGordon Ross #endif /* _SMB_WINIOCTL_H */ 554