⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smb.h

📁 MC Linux/Unix 终端下文件管理器
💻 H
📖 第 1 页 / 共 4 页
字号:
	parm_class class;	void *ptr;	BOOL (*special)(char *, char **);	const struct enum_list *enum_list;	unsigned flags;	union {		BOOL bvalue;		int ivalue;		char *svalue;		char cvalue;	} def;};struct bitmap {	uint32 *b;	int n;};#define FLAG_BASIC 	0x01 /* fundamental options */#define FLAG_SHARE 	0x02 /* file sharing options */#define FLAG_PRINT 	0x04 /* printing options */#define FLAG_GLOBAL 	0x08 /* local options that should be globally settable in SWAT */#define FLAG_DEPRECATED 0x10 /* options that should no longer be used */#define FLAG_HIDE  	0x20 /* options that should be hidden in SWAT */#ifndef LOCKING_VERSION#define LOCKING_VERSION 4#endif /* LOCKING_VERSION *//* these are useful macros for checking validity of handles */#define OPEN_FSP(fsp)    ((fsp) && (fsp)->open && !(fsp)->is_directory)#define OPEN_CONN(conn)    ((conn) && (conn)->open)#define IS_IPC(conn)       ((conn) && (conn)->ipc)#define IS_PRINT(conn)       ((conn) && (conn)->printer)#define FNUM_OK(fsp,c) (OPEN_FSP(fsp) && (c)==(fsp)->conn)#define CHECK_FSP(fsp,conn) if (!FNUM_OK(fsp,conn)) \                               return(ERROR(ERRDOS,ERRbadfid)); \                            else if((fsp)->fd_ptr == NULL) \                               return(ERROR(ERRDOS,ERRbadaccess))#define CHECK_READ(fsp) if (!(fsp)->can_read) \                               return(ERROR(ERRDOS,ERRbadaccess))#define CHECK_WRITE(fsp) if (!(fsp)->can_write) \                               return(ERROR(ERRDOS,ERRbadaccess))#define CHECK_ERROR(fsp) if (HAS_CACHED_ERROR(fsp)) \                               return(CACHED_ERROR(fsp))/* translates a connection number into a service number */#define SNUM(conn)         ((conn)?(conn)->service:-1)/* access various service details */#define SERVICE(snum)      (lp_servicename(snum))#define PRINTCAP           (lp_printcapname())#define PRINTCOMMAND(snum) (lp_printcommand(snum))#define PRINTERNAME(snum)  (lp_printername(snum))#define CAN_WRITE(conn)    (!conn->read_only)#define VALID_SNUM(snum)   (lp_snum_ok(snum))#define GUEST_OK(snum)     (VALID_SNUM(snum) && lp_guest_ok(snum))#define GUEST_ONLY(snum)   (VALID_SNUM(snum) && lp_guest_only(snum))#define CAN_SETDIR(snum)   (!lp_no_set_dir(snum))#define CAN_PRINT(conn)    ((conn) && lp_print_ok((conn)->service))#define MAP_HIDDEN(conn)   ((conn) && lp_map_hidden((conn)->service))#define MAP_SYSTEM(conn)   ((conn) && lp_map_system((conn)->service))#define MAP_ARCHIVE(conn)   ((conn) && lp_map_archive((conn)->service))#define IS_HIDDEN_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->hide_list))#define IS_VETO_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_list))#define IS_VETO_OPLOCK_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_oplock_list))/*  * Used by the stat cache code to check if a returned * stat structure is valid. */#define VALID_STAT(st) (st.st_nlink != 0)  #define VALID_STAT_OF_DIR(st) (VALID_STAT(st) && S_ISDIR(st.st_mode))#define SMBENCRYPT()       (lp_encrypted_passwords())/* the basic packet size, assuming no words or bytes */#define smb_size 39/* offsets into message for common items */#define smb_com 8#define smb_rcls 9#define smb_reh 10#define smb_err 11#define smb_flg 13#define smb_flg2 14#define smb_reb 13#define smb_tid 28#define smb_pid 30#define smb_uid 32#define smb_mid 34#define smb_wct 36#define smb_vwv 37#define smb_vwv0 37#define smb_vwv1 39#define smb_vwv2 41#define smb_vwv3 43#define smb_vwv4 45#define smb_vwv5 47#define smb_vwv6 49#define smb_vwv7 51#define smb_vwv8 53#define smb_vwv9 55#define smb_vwv10 57#define smb_vwv11 59#define smb_vwv12 61#define smb_vwv13 63#define smb_vwv14 65#define smb_vwv15 67#define smb_vwv16 69#define smb_vwv17 71/* flag defines. CIFS spec 3.1.1 */#define FLAG_SUPPORT_LOCKREAD       0x01#define FLAG_CLIENT_BUF_AVAIL       0x02#define FLAG_RESERVED               0x04#define FLAG_CASELESS_PATHNAMES     0x08#define FLAG_CANONICAL_PATHNAMES    0x10#define FLAG_REQUEST_OPLOCK         0x20#define FLAG_REQUEST_BATCH_OPLOCK   0x40#define FLAG_REPLY                  0x80/* the complete */#define SMBmkdir      0x00   /* create directory */#define SMBrmdir      0x01   /* delete directory */#define SMBopen       0x02   /* open file */#define SMBcreate     0x03   /* create file */#define SMBclose      0x04   /* close file */#define SMBflush      0x05   /* flush file */#define SMBunlink     0x06   /* delete file */#define SMBmv         0x07   /* rename file */#define SMBgetatr     0x08   /* get file attributes */#define SMBsetatr     0x09   /* set file attributes */#define SMBread       0x0A   /* read from file */#define SMBwrite      0x0B   /* write to file */#define SMBlock       0x0C   /* lock byte range */#define SMBunlock     0x0D   /* unlock byte range */#define SMBctemp      0x0E   /* create temporary file */#define SMBmknew      0x0F   /* make new file */#define SMBchkpth     0x10   /* check directory path */#define SMBexit       0x11   /* process exit */#define SMBlseek      0x12   /* seek */#define SMBtcon       0x70   /* tree connect */#define SMBtconX      0x75   /* tree connect and X*/#define SMBtdis       0x71   /* tree disconnect */#define SMBnegprot    0x72   /* negotiate protocol */#define SMBdskattr    0x80   /* get disk attributes */#define SMBsearch     0x81   /* search directory */#define SMBsplopen    0xC0   /* open print spool file */#define SMBsplwr      0xC1   /* write to print spool file */#define SMBsplclose   0xC2   /* close print spool file */#define SMBsplretq    0xC3   /* return print queue */#define SMBsends      0xD0   /* send single block message */#define SMBsendb      0xD1   /* send broadcast message */#define SMBfwdname    0xD2   /* forward user name */#define SMBcancelf    0xD3   /* cancel forward */#define SMBgetmac     0xD4   /* get machine name */#define SMBsendstrt   0xD5   /* send start of multi-block message */#define SMBsendend    0xD6   /* send end of multi-block message */#define SMBsendtxt    0xD7   /* send text of multi-block message *//* Core+ protocol */#define SMBlockread	  0x13   /* Lock a range and read */#define SMBwriteunlock 0x14 /* Unlock a range then write */#define SMBreadbraw   0x1a  /* read a block of data with no smb header */#define SMBwritebraw  0x1d  /* write a block of data with no smb header */#define SMBwritec     0x20  /* secondary write request */#define SMBwriteclose 0x2c  /* write a file then close it *//* dos extended protocol */#define SMBreadBraw      0x1A   /* read block raw */#define SMBreadBmpx      0x1B   /* read block multiplexed */#define SMBreadBs        0x1C   /* read block (secondary response) */#define SMBwriteBraw     0x1D   /* write block raw */#define SMBwriteBmpx     0x1E   /* write block multiplexed */#define SMBwriteBs       0x1F   /* write block (secondary request) */#define SMBwriteC        0x20   /* write complete response */#define SMBsetattrE      0x22   /* set file attributes expanded */#define SMBgetattrE      0x23   /* get file attributes expanded */#define SMBlockingX      0x24   /* lock/unlock byte ranges and X */#define SMBtrans         0x25   /* transaction - name, bytes in/out */#define SMBtranss        0x26   /* transaction (secondary request/response) */#define SMBioctl         0x27   /* IOCTL */#define SMBioctls        0x28   /* IOCTL  (secondary request/response) */#define SMBcopy          0x29   /* copy */#define SMBmove          0x2A   /* move */#define SMBecho          0x2B   /* echo */#define SMBopenX         0x2D   /* open and X */#define SMBreadX         0x2E   /* read and X */#define SMBwriteX        0x2F   /* write and X */#define SMBsesssetupX    0x73   /* Session Set Up & X (including User Logon) */#define SMBffirst        0x82   /* find first */#define SMBfunique       0x83   /* find unique */#define SMBfclose        0x84   /* find close */#define SMBinvalid       0xFE   /* invalid command *//* Extended 2.0 protocol */#define SMBtrans2        0x32   /* TRANS2 protocol set */#define SMBtranss2       0x33   /* TRANS2 protocol set, secondary command */#define SMBfindclose     0x34   /* Terminate a TRANSACT2_FINDFIRST */#define SMBfindnclose    0x35   /* Terminate a TRANSACT2_FINDNOTIFYFIRST */#define SMBulogoffX      0x74   /* user logoff *//* NT SMB extensions. */#define SMBnttrans       0xA0   /* NT transact */#define SMBnttranss      0xA1   /* NT transact secondary */#define SMBntcreateX     0xA2   /* NT create and X */#define SMBntcancel      0xA4   /* NT cancel *//* These are the TRANS2 sub commands */#define TRANSACT2_OPEN                        0#define TRANSACT2_FINDFIRST                   1#define TRANSACT2_FINDNEXT                    2#define TRANSACT2_QFSINFO                     3#define TRANSACT2_SETFSINFO                   4#define TRANSACT2_QPATHINFO                   5#define TRANSACT2_SETPATHINFO                 6#define TRANSACT2_QFILEINFO                   7#define TRANSACT2_SETFILEINFO                 8#define TRANSACT2_FSCTL                       9#define TRANSACT2_IOCTL                     0xA#define TRANSACT2_FINDNOTIFYFIRST           0xB#define TRANSACT2_FINDNOTIFYNEXT            0xC#define TRANSACT2_MKDIR                     0xD#define TRANSACT2_SESSION_SETUP             0xE#define TRANSACT2_GET_DFS_REFERRAL         0x10#define TRANSACT2_REPORT_DFS_INCONSISTANCY 0x11/* These are the NT transact sub commands. */#define NT_TRANSACT_CREATE                1#define NT_TRANSACT_IOCTL                 2#define NT_TRANSACT_SET_SECURITY_DESC     3#define NT_TRANSACT_NOTIFY_CHANGE         4#define NT_TRANSACT_RENAME                5#define NT_TRANSACT_QUERY_SECURITY_DESC   6/* these are the trans2 sub fields for primary requests */#define smb_tpscnt smb_vwv0#define smb_tdscnt smb_vwv1#define smb_mprcnt smb_vwv2#define smb_mdrcnt smb_vwv3#define smb_msrcnt smb_vwv4#define smb_flags smb_vwv5#define smb_timeout smb_vwv6#define smb_pscnt smb_vwv9#define smb_psoff smb_vwv10#define smb_dscnt smb_vwv11#define smb_dsoff smb_vwv12#define smb_suwcnt smb_vwv13#define smb_setup smb_vwv14#define smb_setup0 smb_setup#define smb_setup1 (smb_setup+2)#define smb_setup2 (smb_setup+4)/* these are for the secondary requests */#define smb_spscnt smb_vwv2#define smb_spsoff smb_vwv3#define smb_spsdisp smb_vwv4#define smb_sdscnt smb_vwv5#define smb_sdsoff smb_vwv6#define smb_sdsdisp smb_vwv7#define smb_sfid smb_vwv8/* and these for responses */#define smb_tprcnt smb_vwv0#define smb_tdrcnt smb_vwv1#define smb_prcnt smb_vwv3#define smb_proff smb_vwv4#define smb_prdisp smb_vwv5#define smb_drcnt smb_vwv6#define smb_droff smb_vwv7#define smb_drdisp smb_vwv8/* these are for the NT trans primary request. */#define smb_nt_MaxSetupCount smb_vwv0#define smb_nt_Flags (smb_vwv0 + 1)#define smb_nt_TotalParameterCount (smb_vwv0 + 3)#define smb_nt_TotalDataCount (smb_vwv0 + 7)#define smb_nt_MaxParameterCount (smb_vwv0 + 11)#define smb_nt_MaxDataCount (smb_vwv0 + 15)#define smb_nt_ParameterCount (smb_vwv0 + 19)#define smb_nt_ParameterOffset (smb_vwv0 + 23)#define smb_nt_DataCount (smb_vwv0 + 27)#define smb_nt_DataOffset (smb_vwv0 + 31)#define smb_nt_SetupCount (smb_vwv0 + 35)#define smb_nt_Function (smb_vwv0 + 36)#define smb_nt_SetupStart (smb_vwv0 + 38)/* these are for the NT trans secondary request. */#define smb_nts_TotalParameterCount (smb_vwv0 + 3)#define smb_nts_TotalDataCount (smb_vwv0 + 7)#define smb_nts_ParameterCount (smb_vwv0 + 11)#define smb_nts_ParameterOffset (smb_vwv0 + 15)#define smb_nts_ParameterDisplacement (smb_vwv0 + 19)#define smb_nts_DataCount (smb_vwv0 + 23)#define smb_nts_DataOffset (smb_vwv0 + 27)#define smb_nts_DataDisplacement (smb_vwv0 + 31)/* these are for the NT trans reply. */#define smb_ntr_TotalParameterCount (smb_vwv0 + 3)#define smb_ntr_TotalDataCount (smb_vwv0 + 7)#define smb_ntr_ParameterCount (smb_vwv0 + 11)#define smb_ntr_ParameterOffset (smb_vwv0 + 15)#define smb_ntr_ParameterDisplacement (smb_vwv0 + 19)#define smb_ntr_DataCount (smb_vwv0 + 23)#define smb_ntr_DataOffset (smb_vwv0 + 27)#define smb_ntr_DataDisplacement (smb_vwv0 + 31)/* these are for the NT create_and_X */#define smb_ntcreate_NameLength (smb_vwv0 + 5)#define smb_ntcreate_Flags (smb_vwv0 + 7)#define smb_ntcreate_RootDirectoryFid (smb_vwv0 + 11)#define smb_ntcreate_DesiredAccess (smb_vwv0 + 15)#define smb_ntcreate_AllocationSize (smb_vwv0 + 19)#define smb_ntcreate_FileAttributes (smb_vwv0 + 27)#define smb_ntcreate_ShareAccess (smb_vwv0 + 31)#define smb_ntcreate_CreateDisposition (smb_vwv0 + 35)#define smb_ntcreate_CreateOptions (smb_vwv0 + 39)#define smb_ntcreate_ImpersonationLevel (smb_vwv0 + 43)#define smb_ntcreate_SecurityFlags (smb_vwv0 + 47)/* this is used on a TConX. I'm not sure the name is very helpful though */#define SMB_SUPPORT_SEARCH_BITS        0x0001/* these are the constants used in the above call. *//* DesiredAccess *//* File Specific access rights. */#define FILE_READ_DATA        0x001#define FILE_WRITE_DATA       0x002#define FILE_APPEND_DATA      0x004#define FILE_READ_EA          0x008#define FILE_WRITE_EA         0x010#define FILE_EXECUTE          0x020#define FILE_DELETE_CHILD     0x040#define FILE_READ_ATTRIBUTES  0x080#define FILE_WRITE_ATTRIBUTES 0x100#define FILE_ALL_ATTRIBUTES   0x1FF /* Generic access masks & rights. */#define SPECIFIC_RIGHTS_MASK 0x00FFFFL#define STANDARD_RIGHTS_MASK 0xFF0000L#define DELETE_ACCESS        (1L<<16)#define READ_CONTROL_ACCESS  (1L<<17)#define WRITE_DAC_ACCESS     (1L<<18)#define WRITE_OWNER_ACCESS   (1L<<19)#define SYNCHRONIZE_ACCESS   (1L<<20)#define SYSTEM_SECURITY_ACCESS (1L<<24)#define GENERIC_ALL_ACCESS   (1<<28)#define GENERIC_EXECUTE_ACCESS  (1<<29)#define GENERIC_WRITE_ACCESS   (1<<30)#define GENERIC_READ_ACCESS   (1<<31)#define FILE_ALL_STANDARD_ACCESS 0x1F0000/* Mapping of access rights to UNIX perms. */#if 0 /* Don't use all here... JRA. */#define UNIX_ACCESS_RWX (FILE_ALL_ATTRIBUTES|FILE_ALL_STANDARD_ACCESS)#else#define UNIX_ACCESS_RWX (UNIX_ACCESS_R|UNIX_ACCESS_W|UNIX_ACCESS_X)#endif#define UNIX_ACCESS_R (READ_CONTROL_ACCESS|SYNCHRONIZE_ACCESS|\			FILE_READ_ATTRIBUTES|FILE_READ_EA|FILE_READ_DATA)#define UNIX_ACCESS_W (READ_CONTROL_ACCESS|SYNCHRONIZE_ACCESS|\			FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|\			FILE_APPEND_DATA|FILE_WRITE_DATA)#define UNIX_ACCESS_X (READ_CONTROL_ACCESS|SYNCHRONIZE_ACCESS|\			FILE_EXECUTE|FILE_READ_ATTRIBUTES)#define UNIX_ACCESS_NONE (WRITE_OWNER_ACCESS)/* Flags field. */#define REQUEST_OPLOCK 2#define REQUEST_BATCH_OPLOCK 4#define OPEN_DIRECTORY 8/* ShareAccess field. */#define FILE_SHARE_NONE 0 /* Cannot be used in bitmask. */#define FILE_SHARE_READ 1#define FILE_SHARE_WRITE 2#define FILE_SHARE_DELETE 4/* FileAttributesField */#define FILE_ATTRIBUTE_READONLY aRONLY#define FILE_ATTRIBUTE_HIDDEN aHIDDEN#define FILE_ATTRIBUTE_SYSTEM aSYSTEM#define FILE_ATTRIBUTE_DIRECTORY aDIR#define FILE_ATTRIBUTE_ARCHIVE aARCH#define FILE_ATTRIBUTE_NORMAL 0x80L#define FILE_ATTRIBUTE_TEMPORARY 0x100L#define FILE_ATTRIBUTE_COMPRESSED 0x800L#define SAMBA_ATTRIBUTES_MASK 0x7F/* Flags - combined with attributes. */#define FILE_FLAG_WRITE_THROUGH    0x80000000L#define FILE_FLAG_NO_BUFFERING     0x20000000L#define FILE_FLAG_RANDOM_ACCESS    0x10000000L#define FILE_FLAG_SEQUENTIAL_SCAN  0x08000000L#define FILE_FLAG_DELETE_ON_CLOSE  0x04000000L#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L#define FILE_FLAG_POSIX_SEMANTICS  0x01000000L/* CreateDisposition field. */#define FILE_SUPERSEDE 0#define FILE_OPEN 1#define FILE_CREATE 2#define FILE_OPEN_IF 3#define FILE_OVERWRITE 4#define FILE_OVERWRITE_IF 5/* CreateOptions field. */#define FILE_DIRECTORY_FILE       0x0001#define FILE_WRITE_THROUGH        0x0002#define FILE_SEQUENTIAL_ONLY      0x0004#define FILE_NON_DIRECTORY_FILE   0x0040#define FILE_NO_EA_KNOWLEDGE      0x0200#define FILE_EIGHT_DOT_THREE_ONLY 0x0400#define FILE_RANDOM_ACCESS        0x0800#define FILE_DELETE_ON_CLOSE      0x1000/* Responses when opening a file. */#define FILE_WAS_OPENED 1#define FILE_WAS_CREATED 2#define FILE_WAS_OVERWRITTEN 3/* File type flags */#define FILE_TYPE_DISK  0#define FILE_TYPE_BYTE_MODE_PIPE 1#define FILE_TYPE_MESSAGE_MODE_PIPE 2#define FILE_TYPE_PRINTER 3#define FILE_TYPE_COMM_DEVICE 4#define FILE_TYPE_UNKNOWN 0xFFFF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -