5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 *
25 * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
26 */
27 #ifndef _SMBSRV_WINIOCTL_H
28 #define _SMBSRV_WINIOCTL_H
29
30 /*
31 * Standard Windows NT IOCTL/FSCTL definitions (derived from the VC++
32 * include file of the same name).
33 */
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #ifndef _DEVIOCTL_
40 #define _DEVIOCTL_
41
42 /*
43 * begin_ntddk begin_wdm begin_nthal begin_ntifs
44 *
45 * Define the various device type values. Note that values used by Microsoft
46 * Corporation are in the range 0-32767, and 32768-65535 are reserved for use
47 * by customers.
48 */
463 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_ACCESS)
464 #define FSCTL_QUERY_SPARING_INFO \
465 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
466 #define FSCTL_QUERY_ON_DISK_VOLUME_INFO \
467 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
468 #define FSCTL_SET_ZERO_ON_DEALLOCATION \
469 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_ANY_ACCESS)
470 #define FSCTL_SET_SHORT_NAME_BEHAVIOR \
471 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
472 #define FSCTL_FILE_LEVEL_TRIM \
473 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_ACCESS)
474 #define FSCTL_OFFLOAD_READ \
475 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
476 #define FSCTL_OFFLOAD_WRITE \
477 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
478 #define FSCTL_GET_INTEGRITY_INFORMATION \
479 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
480 #define FSCTL_SET_INTEGRITY_INFORMATION \
481 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, \
482 FILE_READ_ACCESS | FILE_WRITE_ACCESS)
483
484 /* FILE_DEVICE_NETWORK_FILE_SYSTEM */
485 /* Read the snapshot info for Volume Shadow Copy Services */
486 #define FSCTL_SRV_ENUMERATE_SNAPSHOTS \
487 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x19, \
488 METHOD_BUFFERED, FILE_READ_ACCESS)
489 /* Retrieve an opaque file reference for server-side data movement */
490 #define FSCTL_SRV_REQUEST_RESUME_KEY \
491 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x1e, \
492 METHOD_BUFFERED, FILE_ANY_ACCESS)
493 #define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION \
494 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3a, \
495 METHOD_BUFFERED, FILE_ANY_ACCESS)
496 #define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION \
497 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3b, \
498 METHOD_BUFFERED, FILE_ANY_ACCESS)
499 /* server-side data movement */
500 #define FSCTL_SRV_COPYCHUNK \
501 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3c, \
502 METHOD_OUT_DIRECT, FILE_READ_ACCESS)
527 #define FSCTL_DFS_GET_REFERRALS \
528 CTL_CODE(FILE_DEVICE_DFS, 0x65, METHOD_BUFFERED, FILE_ANY_ACCESS)
529 #define FSCTL_DFS_GET_REFERRALS_EX \
530 CTL_CODE(FILE_DEVICE_DFS, 0x6c, METHOD_BUFFERED, FILE_ANY_ACCESS)
531
532 /* FILE_DEVICE_NAMED_PIPE */
533 #define FSCTL_PIPE_PEEK \
534 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS)
535 #define FSCTL_PIPE_TRANSCEIVE \
536 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, \
537 FILE_READ_ACCESS | FILE_WRITE_ACCESS)
538 #define FSCTL_PIPE_WAIT \
539 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
540
541 #endif /* _FILESYSTEMFSCTL_ */
542
543 #ifdef __cplusplus
544 }
545 #endif
546
547 #endif /* _SMBSRV_WINIOCTL_H */
|
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 *
25 * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
26 */
27 #ifndef _SMB_WINIOCTL_H
28 #define _SMB_WINIOCTL_H
29
30 /*
31 * Standard Windows NT IOCTL/FSCTL definitions (derived from the VC++
32 * include file of the same name).
33 */
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #ifndef _DEVIOCTL_
40 #define _DEVIOCTL_
41
42 /*
43 * begin_ntddk begin_wdm begin_nthal begin_ntifs
44 *
45 * Define the various device type values. Note that values used by Microsoft
46 * Corporation are in the range 0-32767, and 32768-65535 are reserved for use
47 * by customers.
48 */
463 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_ACCESS)
464 #define FSCTL_QUERY_SPARING_INFO \
465 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS)
466 #define FSCTL_QUERY_ON_DISK_VOLUME_INFO \
467 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS)
468 #define FSCTL_SET_ZERO_ON_DEALLOCATION \
469 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_ANY_ACCESS)
470 #define FSCTL_SET_SHORT_NAME_BEHAVIOR \
471 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS)
472 #define FSCTL_FILE_LEVEL_TRIM \
473 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 130, METHOD_BUFFERED, FILE_WRITE_ACCESS)
474 #define FSCTL_OFFLOAD_READ \
475 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 153, METHOD_BUFFERED, FILE_READ_ACCESS)
476 #define FSCTL_OFFLOAD_WRITE \
477 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 154, METHOD_BUFFERED, FILE_WRITE_ACCESS)
478 #define FSCTL_GET_INTEGRITY_INFORMATION \
479 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
480 #define FSCTL_SET_INTEGRITY_INFORMATION \
481 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, \
482 FILE_READ_ACCESS | FILE_WRITE_ACCESS)
483 #define FSCTL_QUERY_FILE_REGIONS \
484 CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 161, METHOD_BUFFERED, FILE_ANY_ACCESS)
485
486 /* FILE_DEVICE_NETWORK_FILE_SYSTEM */
487 /* Read the snapshot info for Volume Shadow Copy Services */
488 #define FSCTL_SRV_ENUMERATE_SNAPSHOTS \
489 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x19, \
490 METHOD_BUFFERED, FILE_READ_ACCESS)
491 /* Retrieve an opaque file reference for server-side data movement */
492 #define FSCTL_SRV_REQUEST_RESUME_KEY \
493 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x1e, \
494 METHOD_BUFFERED, FILE_ANY_ACCESS)
495 #define FSCTL_LMR_GET_LINK_TRACKING_INFORMATION \
496 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3a, \
497 METHOD_BUFFERED, FILE_ANY_ACCESS)
498 #define FSCTL_LMR_SET_LINK_TRACKING_INFORMATION \
499 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3b, \
500 METHOD_BUFFERED, FILE_ANY_ACCESS)
501 /* server-side data movement */
502 #define FSCTL_SRV_COPYCHUNK \
503 CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 0x3c, \
504 METHOD_OUT_DIRECT, FILE_READ_ACCESS)
529 #define FSCTL_DFS_GET_REFERRALS \
530 CTL_CODE(FILE_DEVICE_DFS, 0x65, METHOD_BUFFERED, FILE_ANY_ACCESS)
531 #define FSCTL_DFS_GET_REFERRALS_EX \
532 CTL_CODE(FILE_DEVICE_DFS, 0x6c, METHOD_BUFFERED, FILE_ANY_ACCESS)
533
534 /* FILE_DEVICE_NAMED_PIPE */
535 #define FSCTL_PIPE_PEEK \
536 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_ACCESS)
537 #define FSCTL_PIPE_TRANSCEIVE \
538 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, \
539 FILE_READ_ACCESS | FILE_WRITE_ACCESS)
540 #define FSCTL_PIPE_WAIT \
541 CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
542
543 #endif /* _FILESYSTEMFSCTL_ */
544
545 #ifdef __cplusplus
546 }
547 #endif
548
549 #endif /* _SMB_WINIOCTL_H */
|