From: Ralph Boehme Date: Fri, 23 Oct 2020 14:21:16 +0000 (+0200) Subject: s3: add and use MS-FSCC Codes from 2.4 and 2.5 X-Git-Tag: talloc-2.3.2~122 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b53e5834045e58704b0ec3e48c35626a168cd81;p=thirdparty%2Fsamba.git s3: add and use MS-FSCC Codes from 2.4 and 2.5 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/source3/include/trans2.h b/source3/include/trans2.h index ece436a048f..16e50b59b7d 100644 --- a/source3/include/trans2.h +++ b/source3/include/trans2.h @@ -290,68 +290,134 @@ Byte offset Type name description #define SSINFO_OFFSET_UNKNOWN 0xffffffff +/* MS-FSCC 2.4 File Information Classes */ + +#define FSCC_FILE_DIRECTORY_INFORMATION 1 +#define FSCC_FILE_FULL_DIRECTORY_INFORMATION 2 +#define FSCC_FILE_BOTH_DIRECTORY_INFORMATION 3 +#define FSCC_FILE_BASIC_INFORMATION 4 +#define FSCC_FILE_STANDARD_INFORMATION 5 +#define FSCC_FILE_INTERNAL_INFORMATION 6 +#define FSCC_FILE_EA_INFORMATION 7 +#define FSCC_FILE_ACCESS_INFORMATION 8 +#define FSCC_FILE_NAME_INFORMATION 9 +#define FSCC_FILE_RENAME_INFORMATION 10 +#define FSCC_FILE_LINK_INFORMATION 11 +#define FSCC_FILE_NAMES_INFORMATION 12 +#define FSCC_FILE_DISPOSITION_INFORMATION 13 +#define FSCC_FILE_POSITION_INFORMATION 14 +#define FSCC_FILE_FULL_EA_INFORMATION 15 +#define FSCC_FILE_MODE_INFORMATION 16 +#define FSCC_FILE_ALIGNMENT_INFORMATION 17 +#define FSCC_FILE_ALL_INFORMATION 18 +#define FSCC_FILE_ALLOCATION_INFORMATION 19 +#define FSCC_FILE_END_OF_FILE_INFORMATION 20 +#define FSCC_FILE_ALTERNATE_NAME_INFORMATION 21 +#define FSCC_FILE_STREAM_INFORMATION 22 +#define FSCC_FILE_PIPE_INFORMATION 23 +#define FSCC_FILE_PIPE_LOCAL_INFORMATION 24 +#define FSCC_FILE_PIPE_REMOTE_INFORMATION 25 +#define FSCC_FILE_MAILSLOT_QUERY_INFORMATION 26 +#define FSCC_FILE_MAILSLOT_SET_INFORMATION 27 +#define FSCC_FILE_COMPRESSION_INFORMATION 28 +#define FSCC_FILE_OBJECTID_INFORMATION 29 +#define FSCC_FILE_COMPLETION_INFORMATION 30 +#define FSCC_FILE_MOVE_CLUSTER_INFORMATION 31 +#define FSCC_FILE_QUOTA_INFORMATION 32 +#define FSCC_FILE_REPARSEPOINT_INFORMATION 33 +#define FSCC_FILE_NETWORK_OPEN_INFORMATION 34 +#define FSCC_FILE_ATTRIBUTE_TAG_INFORMATION 35 +#define FSCC_FILE_TRACKING_INFORMATION 36 +#define FSCC_FILE_ID_BOTH_DIRECTORY_INFORMATION 37 +#define FSCC_FILE_ID_FULL_DIRECTORY_INFORMATION 38 +#define FSCC_FILE_VALID_DATA_LENGTH_INFORMATION 39 +#define FSCC_FILE_SHORT_NAME_INFORMATION 40 +#define FSCC_FILE_SFIO_RESERVE_INFORMATION 44 +#define FSCC_FILE_SFIO_VOLUME_INFORMATION 45 +#define FSCC_FILE_HARD_LINK_INFORMATION 46 +#define FSCC_FILE_NORMALIZED_NAME_INFORMATION 48 +#define FSCC_FILE_ID_GLOBAL_TX_DIRECTORY_INFORMATION 50 +#define FSCC_FILE_STANDARD_LINK_INFORMATION 54 +#define FSCC_FILE_MAXIMUM_INFORMATION 55 + +/* MS-FSCC 2.4 File System Information Classes */ + +#define FSCC_FS_VOLUME_INFORMATION 1 +#define FSCC_FS_LABEL_INFORMATION 2 +#define FSCC_FS_SIZE_INFORMATION 3 +#define FSCC_FS_DEVICE_INFORMATION 4 +#define FSCC_FS_ATTRIBUTE_INFORMATION 5 +#define FSCC_FS_QUOTA_INFORMATION 6 +#define FSCC_FS_FULL_SIZE_INFORMATION 7 +#define FSCC_FS_OBJECTID_INFORMATION 8 +#define FSCC_FS_SECTOR_SIZE_INFORMATION 11 + /* NT passthrough levels... */ -#define SMB_FILE_DIRECTORY_INFORMATION 1001 -#define SMB_FILE_FULL_DIRECTORY_INFORMATION 1002 -#define SMB_FILE_BOTH_DIRECTORY_INFORMATION 1003 -#define SMB_FILE_BASIC_INFORMATION 1004 -#define SMB_FILE_STANDARD_INFORMATION 1005 -#define SMB_FILE_INTERNAL_INFORMATION 1006 -#define SMB_FILE_EA_INFORMATION 1007 -#define SMB_FILE_ACCESS_INFORMATION 1008 -#define SMB_FILE_NAME_INFORMATION 1009 -#define SMB_FILE_RENAME_INFORMATION 1010 -#define SMB2_FILE_RENAME_INFORMATION_INTERNAL 0xFF0A /* Internal mapped version. */ -#define SMB_FILE_LINK_INFORMATION 1011 -#define SMB_FILE_NAMES_INFORMATION 1012 -#define SMB_FILE_DISPOSITION_INFORMATION 1013 -#define SMB_FILE_POSITION_INFORMATION 1014 -#define SMB_FILE_FULL_EA_INFORMATION 1015 -#define SMB_FILE_MODE_INFORMATION 1016 -#define SMB_FILE_ALIGNMENT_INFORMATION 1017 -#define SMB_FILE_ALL_INFORMATION 1018 -#define SMB_FILE_ALLOCATION_INFORMATION 1019 -#define SMB_FILE_END_OF_FILE_INFORMATION 1020 -#define SMB_FILE_ALTERNATE_NAME_INFORMATION 1021 -#define SMB_FILE_STREAM_INFORMATION 1022 -#define SMB_FILE_PIPE_INFORMATION 1023 -#define SMB_FILE_PIPE_LOCAL_INFORMATION 1024 -#define SMB_FILE_PIPE_REMOTE_INFORMATION 1025 -#define SMB_FILE_MAILSLOT_QUERY_INFORMATION 1026 -#define SMB_FILE_MAILSLOT_SET_INFORMATION 1027 -#define SMB_FILE_COMPRESSION_INFORMATION 1028 -#define SMB_FILE_OBJECTID_INFORMATION 1029 -#define SMB_FILE_COMPLETION_INFORMATION 1030 -#define SMB_FILE_MOVE_CLUSTER_INFORMATION 1031 -#define SMB_FILE_QUOTA_INFORMATION 1032 -#define SMB_FILE_REPARSEPOINT_INFORMATION 1033 -#define SMB_FILE_NETWORK_OPEN_INFORMATION 1034 -#define SMB_FILE_ATTRIBUTE_TAG_INFORMATION 1035 -#define SMB_FILE_TRACKING_INFORMATION 1036 -#define SMB_FILE_ID_BOTH_DIRECTORY_INFORMATION 1037 -#define SMB_FILE_ID_FULL_DIRECTORY_INFORMATION 1038 -#define SMB_FILE_VALID_DATA_LENGTH_INFORMATION 1039 -#define SMB_FILE_SHORT_NAME_INFORMATION 1040 -#define SMB_FILE_SFIO_RESERVE_INFORMATION 1044 -#define SMB_FILE_SFIO_VOLUME_INFORMATION 1045 -#define SMB_FILE_HARD_LINK_INFORMATION 1046 -#define SMB_FILE_NORMALIZED_NAME_INFORMATION 1048 -#define SMB_FILE_ID_GLOBAL_TX_DIRECTORY_INFORMATION 1050 -#define SMB_FILE_STANDARD_LINK_INFORMATION 1054 -#define SMB_FILE_MAXIMUM_INFORMATION 1055 +#define NT_PASSTHROUGH_OFFSET 1000 +#define SMB2_INFO_SPECIAL 0xFF00 + +#define SMB_FILE_DIRECTORY_INFORMATION (FSCC_FILE_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_FULL_DIRECTORY_INFORMATION (FSCC_FILE_FULL_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_BOTH_DIRECTORY_INFORMATION (FSCC_FILE_BOTH_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_BASIC_INFORMATION (FSCC_FILE_BASIC_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_STANDARD_INFORMATION (FSCC_FILE_STANDARD_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_INTERNAL_INFORMATION (FSCC_FILE_INTERNAL_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_EA_INFORMATION (FSCC_FILE_EA_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ACCESS_INFORMATION (FSCC_FILE_ACCESS_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_NAME_INFORMATION (FSCC_FILE_NAME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_RENAME_INFORMATION (FSCC_FILE_RENAME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_LINK_INFORMATION (FSCC_FILE_LINK_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_NAMES_INFORMATION (FSCC_FILE_NAMES_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_DISPOSITION_INFORMATION (FSCC_FILE_DISPOSITION_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_POSITION_INFORMATION (FSCC_FILE_POSITION_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_FULL_EA_INFORMATION (FSCC_FILE_FULL_EA_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_MODE_INFORMATION (FSCC_FILE_MODE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ALIGNMENT_INFORMATION (FSCC_FILE_ALIGNMENT_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ALL_INFORMATION (FSCC_FILE_ALL_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ALLOCATION_INFORMATION (FSCC_FILE_ALLOCATION_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_END_OF_FILE_INFORMATION (FSCC_FILE_END_OF_FILE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ALTERNATE_NAME_INFORMATION (FSCC_FILE_ALTERNATE_NAME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_STREAM_INFORMATION (FSCC_FILE_STREAM_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_PIPE_INFORMATION (FSCC_FILE_PIPE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_PIPE_LOCAL_INFORMATION (FSCC_FILE_PIPE_LOCAL_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_PIPE_REMOTE_INFORMATION (FSCC_FILE_PIPE_REMOTE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_MAILSLOT_QUERY_INFORMATION (FSCC_FILE_MAILSLOT_QUERY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_MAILSLOT_SET_INFORMATION (FSCC_FILE_MAILSLOT_SET_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_COMPRESSION_INFORMATION (FSCC_FILE_COMPRESSION_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_OBJECTID_INFORMATION (FSCC_FILE_OBJECTID_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_COMPLETION_INFORMATION (FSCC_FILE_COMPLETION_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_MOVE_CLUSTER_INFORMATION (FSCC_FILE_MOVE_CLUSTER_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_QUOTA_INFORMATION (FSCC_FILE_QUOTA_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_REPARSEPOINT_INFORMATION (FSCC_FILE_REPARSEPOINT_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_NETWORK_OPEN_INFORMATION (FSCC_FILE_NETWORK_OPEN_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ATTRIBUTE_TAG_INFORMATION (FSCC_FILE_ATTRIBUTE_TAG_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_TRACKING_INFORMATION (FSCC_FILE_TRACKING_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ID_BOTH_DIRECTORY_INFORMATION (FSCC_FILE_ID_BOTH_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ID_FULL_DIRECTORY_INFORMATION (FSCC_FILE_ID_FULL_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_VALID_DATA_LENGTH_INFORMATION (FSCC_FILE_VALID_DATA_LENGTH_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_SHORT_NAME_INFORMATION (FSCC_FILE_SHORT_NAME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_SFIO_RESERVE_INFORMATION (FSCC_FILE_SFIO_RESERVE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_SFIO_VOLUME_INFORMATION (FSCC_FILE_SFIO_VOLUME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_HARD_LINK_INFORMATION (FSCC_FILE_HARD_LINK_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_NORMALIZED_NAME_INFORMATION (FSCC_FILE_NORMALIZED_NAME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_ID_GLOBAL_TX_DIRECTORY_INFORMATION (FSCC_FILE_ID_GLOBAL_TX_DIRECTORY_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_STANDARD_LINK_INFORMATION (FSCC_FILE_STANDARD_LINK_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FILE_MAXIMUM_INFORMATION (FSCC_FILE_MAXIMUM_INFORMATION + NT_PASSTHROUGH_OFFSET) +/* Internal mapped versions. */ +#define SMB2_FILE_RENAME_INFORMATION_INTERNAL (FSCC_FILE_RENAME_INFORMATION + SMB2_INFO_SPECIAL) /* NT passthough levels for qfsinfo. */ -#define SMB_FS_VOLUME_INFORMATION 1001 -#define SMB_FS_LABEL_INFORMATION 1002 -#define SMB_FS_SIZE_INFORMATION 1003 -#define SMB_FS_DEVICE_INFORMATION 1004 -#define SMB_FS_ATTRIBUTE_INFORMATION 1005 -#define SMB_FS_QUOTA_INFORMATION 1006 -#define SMB_FS_FULL_SIZE_INFORMATION 1007 -#define SMB_FS_OBJECTID_INFORMATION 1008 -#define SMB_FS_SECTOR_SIZE_INFORMATION 1011 +#define SMB_FS_VOLUME_INFORMATION (FSCC_FS_VOLUME_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_LABEL_INFORMATION (FSCC_FS_LABEL_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_SIZE_INFORMATION (FSCC_FS_SIZE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_DEVICE_INFORMATION (FSCC_FS_DEVICE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_ATTRIBUTE_INFORMATION (FSCC_FS_ATTRIBUTE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_QUOTA_INFORMATION (FSCC_FS_QUOTA_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_FULL_SIZE_INFORMATION (FSCC_FS_FULL_SIZE_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_OBJECTID_INFORMATION (FSCC_FS_OBJECTID_INFORMATION + NT_PASSTHROUGH_OFFSET) +#define SMB_FS_SECTOR_SIZE_INFORMATION (FSCC_FS_SECTOR_SIZE_INFORMATION + NT_PASSTHROUGH_OFFSET) /* SMB_FS_DEVICE_INFORMATION device types. */ #define FILE_DEVICE_CD_ROM 0x2