📄 cifspdu.h
字号:
#define FILE_ACTION_MODIFIED 0x00000003#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005#define FILE_ACTION_ADDED_STREAM 0x00000006#define FILE_ACTION_REMOVED_STREAM 0x00000007#define FILE_ACTION_MODIFIED_STREAM 0x00000008/* response contains array of the following structures */struct file_notify_information { __le32 NextEntryOffset; __le32 Action; __le32 FileNameLength; __u8 FileName[0];} __attribute__((packed));struct reparse_data { __u32 ReparseTag; __u16 ReparseDataLength; __u16 Reserved; __u16 AltNameOffset; __u16 AltNameLen; __u16 TargetNameOffset; __u16 TargetNameLen; char LinkNamesBuf[1];} __attribute__((packed));struct cifs_quota_data { __u32 rsrvd1; /* 0 */ __u32 sid_size; __u64 rsrvd2; /* 0 */ __u64 space_used; __u64 soft_limit; __u64 hard_limit; char sid[1]; /* variable size? */} __attribute__((packed));/* quota sub commands */#define QUOTA_LIST_CONTINUE 0#define QUOTA_LIST_START 0x100#define QUOTA_FOR_SID 0x101struct trans2_req { /* struct smb_hdr hdr precedes. Set wct = 14+ */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; __u8 Reserved3; __le16 SubCommand; /* 1st setup word - SetupCount words follow */ __le16 ByteCount;} __attribute__((packed));struct smb_t2_req { struct smb_hdr hdr; struct trans2_req t2_req;} __attribute__((packed));struct trans2_resp { /* struct smb_hdr hdr precedes. Note wct = 10 + setup count */ __le16 TotalParameterCount; __le16 TotalDataCount; __u16 Reserved; __le16 ParameterCount; __le16 ParameterOffset; __le16 ParameterDisplacement; __le16 DataCount; __le16 DataOffset; __le16 DataDisplacement; __u8 SetupCount; __u8 Reserved1; /* SetupWords[SetupCount]; __u16 ByteCount; __u16 Reserved2;*/ /* data area follows */} __attribute__((packed));struct smb_t2_rsp { struct smb_hdr hdr; struct trans2_resp t2_rsp;} __attribute__((packed));/* PathInfo/FileInfo infolevels */#define SMB_INFO_STANDARD 1#define SMB_SET_FILE_EA 2#define SMB_QUERY_FILE_EA_SIZE 2#define SMB_INFO_QUERY_EAS_FROM_LIST 3#define SMB_INFO_QUERY_ALL_EAS 4#define SMB_INFO_IS_NAME_VALID 6#define SMB_QUERY_FILE_BASIC_INFO 0x101#define SMB_QUERY_FILE_STANDARD_INFO 0x102#define SMB_QUERY_FILE_EA_INFO 0x103#define SMB_QUERY_FILE_NAME_INFO 0x104#define SMB_QUERY_FILE_ALLOCATION_INFO 0x105#define SMB_QUERY_FILE_END_OF_FILEINFO 0x106#define SMB_QUERY_FILE_ALL_INFO 0x107#define SMB_QUERY_ALT_NAME_INFO 0x108#define SMB_QUERY_FILE_STREAM_INFO 0x109#define SMB_QUERY_FILE_COMPRESSION_INFO 0x10B#define SMB_QUERY_FILE_UNIX_BASIC 0x200#define SMB_QUERY_FILE_UNIX_LINK 0x201#define SMB_QUERY_POSIX_ACL 0x204#define SMB_QUERY_XATTR 0x205 /* e.g. system EA name space */#define SMB_QUERY_ATTR_FLAGS 0x206 /* append,immutable etc. */#define SMB_QUERY_POSIX_PERMISSION 0x207#define SMB_QUERY_POSIX_LOCK 0x208/* #define SMB_POSIX_OPEN 0x209 *//* #define SMB_POSIX_UNLINK 0x20a */#define SMB_QUERY_FILE__UNIX_INFO2 0x20b#define SMB_QUERY_FILE_INTERNAL_INFO 0x3ee#define SMB_QUERY_FILE_ACCESS_INFO 0x3f0#define SMB_QUERY_FILE_NAME_INFO2 0x3f1 /* 0x30 bytes */#define SMB_QUERY_FILE_POSITION_INFO 0x3f6#define SMB_QUERY_FILE_MODE_INFO 0x3f8#define SMB_QUERY_FILE_ALGN_INFO 0x3f9#define SMB_SET_FILE_BASIC_INFO 0x101#define SMB_SET_FILE_DISPOSITION_INFO 0x102#define SMB_SET_FILE_ALLOCATION_INFO 0x103#define SMB_SET_FILE_END_OF_FILE_INFO 0x104#define SMB_SET_FILE_UNIX_BASIC 0x200#define SMB_SET_FILE_UNIX_LINK 0x201#define SMB_SET_FILE_UNIX_HLINK 0x203#define SMB_SET_POSIX_ACL 0x204#define SMB_SET_XATTR 0x205#define SMB_SET_ATTR_FLAGS 0x206 /* append, immutable etc. */#define SMB_SET_POSIX_LOCK 0x208#define SMB_POSIX_OPEN 0x209#define SMB_POSIX_UNLINK 0x20a#define SMB_SET_FILE_UNIX_INFO2 0x20b#define SMB_SET_FILE_BASIC_INFO2 0x3ec#define SMB_SET_FILE_RENAME_INFORMATION 0x3f2 /* BB check if qpathinfo too */#define SMB_FILE_ALL_INFO2 0x3fa#define SMB_SET_FILE_ALLOCATION_INFO2 0x3fb#define SMB_SET_FILE_END_OF_FILE_INFO2 0x3fc#define SMB_FILE_MOVE_CLUSTER_INFO 0x407#define SMB_FILE_QUOTA_INFO 0x408#define SMB_FILE_REPARSEPOINT_INFO 0x409#define SMB_FILE_MAXIMUM_INFO 0x40d/* Find File infolevels */#define SMB_FIND_FILE_INFO_STANDARD 0x001#define SMB_FIND_FILE_QUERY_EA_SIZE 0x002#define SMB_FIND_FILE_QUERY_EAS_FROM_LIST 0x003#define SMB_FIND_FILE_DIRECTORY_INFO 0x101#define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102#define SMB_FIND_FILE_NAMES_INFO 0x103#define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104#define SMB_FIND_FILE_ID_FULL_DIR_INFO 0x105#define SMB_FIND_FILE_ID_BOTH_DIR_INFO 0x106#define SMB_FIND_FILE_UNIX 0x202typedef struct smb_com_transaction2_qpi_req { struct smb_hdr hdr; /* wct = 14+ */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; __u8 Reserved3; __le16 SubCommand; /* one setup word */ __le16 ByteCount; __u8 Pad; __le16 InformationLevel; __u32 Reserved4; char FileName[1];} __attribute__((packed)) TRANSACTION2_QPI_REQ;typedef struct smb_com_transaction2_qpi_rsp { struct smb_hdr hdr; /* wct = 10 + SetupCount */ struct trans2_resp t2; __u16 ByteCount; __u16 Reserved2; /* parameter word is present for infolevels > 100 */} __attribute__((packed)) TRANSACTION2_QPI_RSP;typedef struct smb_com_transaction2_spi_req { struct smb_hdr hdr; /* wct = 15 */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; __u8 Reserved3; __le16 SubCommand; /* one setup word */ __le16 ByteCount; __u8 Pad; __u16 Pad1; __le16 InformationLevel; __u32 Reserved4; char FileName[1];} __attribute__((packed)) TRANSACTION2_SPI_REQ;typedef struct smb_com_transaction2_spi_rsp { struct smb_hdr hdr; /* wct = 10 + SetupCount */ struct trans2_resp t2; __u16 ByteCount; __u16 Reserved2; /* parameter word is present for infolevels > 100 */} __attribute__((packed)) TRANSACTION2_SPI_RSP;struct set_file_rename { __le32 overwrite; /* 1 = overwrite dest */ __u32 root_fid; /* zero */ __le32 target_name_len; char target_name[0]; /* Must be unicode */} __attribute__((packed));struct smb_com_transaction2_sfi_req { struct smb_hdr hdr; /* wct = 15 */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; __u8 Reserved3; __le16 SubCommand; /* one setup word */ __le16 ByteCount; __u8 Pad; __u16 Pad1; __u16 Fid; __le16 InformationLevel; __u16 Reserved4;} __attribute__((packed));struct smb_com_transaction2_sfi_rsp { struct smb_hdr hdr; /* wct = 10 + SetupCount */ struct trans2_resp t2; __u16 ByteCount; __u16 Reserved2; /* parameter word reserved - present for infolevels > 100 */} __attribute__((packed));struct smb_t2_qfi_req { struct smb_hdr hdr; struct trans2_req t2; __u8 Pad; __u16 Fid; __le16 InformationLevel;} __attribute__((packed));struct smb_t2_qfi_rsp { struct smb_hdr hdr; /* wct = 10 + SetupCount */ struct trans2_resp t2; __u16 ByteCount; __u16 Reserved2; /* parameter word reserved - present for infolevels > 100 */} __attribute__((packed));/* * Flags on T2 FINDFIRST and FINDNEXT */#define CIFS_SEARCH_CLOSE_ALWAYS 0x0001#define CIFS_SEARCH_CLOSE_AT_END 0x0002#define CIFS_SEARCH_RETURN_RESUME 0x0004#define CIFS_SEARCH_CONTINUE_FROM_LAST 0x0008#define CIFS_SEARCH_BACKUP_SEARCH 0x0010/* * Size of the resume key on FINDFIRST and FINDNEXT calls */#define CIFS_SMB_RESUME_KEY_SIZE 4typedef struct smb_com_transaction2_ffirst_req { struct smb_hdr hdr; /* wct = 15 */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; /* one */ __u8 Reserved3; __le16 SubCommand; /* TRANS2_FIND_FIRST */ __le16 ByteCount; __u8 Pad; __le16 SearchAttributes; __le16 SearchCount; __le16 SearchFlags; __le16 InformationLevel; __le32 SearchStorageType; char FileName[1];} __attribute__((packed)) TRANSACTION2_FFIRST_REQ;typedef struct smb_com_transaction2_ffirst_rsp { struct smb_hdr hdr; /* wct = 10 */ struct trans2_resp t2; __u16 ByteCount;} __attribute__((packed)) TRANSACTION2_FFIRST_RSP;typedef struct smb_com_transaction2_ffirst_rsp_parms { __u16 SearchHandle; __le16 SearchCount; __le16 EndofSearch; __le16 EAErrorOffset; __le16 LastNameOffset;} __attribute__((packed)) T2_FFIRST_RSP_PARMS;typedef struct smb_com_transaction2_fnext_req { struct smb_hdr hdr; /* wct = 15 */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; /* one */ __u8 Reserved3; __le16 SubCommand; /* TRANS2_FIND_NEXT */ __le16 ByteCount; __u8 Pad; __u16 SearchHandle; __le16 SearchCount; __le16 InformationLevel; __u32 ResumeKey; __le16 SearchFlags; char ResumeFileName[1];} __attribute__((packed)) TRANSACTION2_FNEXT_REQ;typedef struct smb_com_transaction2_fnext_rsp { struct smb_hdr hdr; /* wct = 10 */ struct trans2_resp t2; __u16 ByteCount;} __attribute__((packed)) TRANSACTION2_FNEXT_RSP;typedef struct smb_com_transaction2_fnext_rsp_parms { __le16 SearchCount; __le16 EndofSearch; __le16 EAErrorOffset; __le16 LastNameOffset;} __attribute__((packed)) T2_FNEXT_RSP_PARMS;/* QFSInfo Levels */#define SMB_INFO_ALLOCATION 1#define SMB_INFO_VOLUME 2#define SMB_QUERY_FS_VOLUME_INFO 0x102#define SMB_QUERY_FS_SIZE_INFO 0x103#define SMB_QUERY_FS_DEVICE_INFO 0x104#define SMB_QUERY_FS_ATTRIBUTE_INFO 0x105#define SMB_QUERY_CIFS_UNIX_INFO 0x200#define SMB_QUERY_POSIX_FS_INFO 0x201#define SMB_QUERY_POSIX_WHO_AM_I 0x202#define SMB_QUERY_LABEL_INFO 0x3ea#define SMB_QUERY_FS_QUOTA_INFO 0x3ee#define SMB_QUERY_FS_FULL_SIZE_INFO 0x3ef#define SMB_QUERY_OBJECTID_INFO 0x3f0typedef struct smb_com_transaction2_qfsi_req { struct smb_hdr hdr; /* wct = 14+ */ __le16 TotalParameterCount; __le16 TotalDataCount; __le16 MaxParameterCount; __le16 MaxDataCount; __u8 MaxSetupCount; __u8 Reserved; __le16 Flags; __le32 Timeout; __u16 Reserved2; __le16 ParameterCount; __le16 ParameterOffset; __le16 DataCount; __le16 DataOffset; __u8 SetupCount; __u8 Reserved3; __le16 SubCommand; /* one setup word */ __le16 ByteCount; __u8 Pad; __le16 InformationLevel;} __attribute__((packed)) TRANSACTION2_QFSI_REQ;typedef struct smb_com_transaction_qfsi_rsp { struct smb_hdr hdr; /* wct = 10 + SetupCount */ struct trans2_resp t2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -