Print this page
NEX-14666 Need to provide SMB 2.1 Client
NEX-17187 panic in smbfs_acl_store
NEX-17231 smbfs create xattr files finds wrong file
NEX-17224 smbfs lookup EINVAL should be ENOENT
NEX-17260 SMB1 client fails to list directory after NEX-14666
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
and: (cleanup)


   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 */