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

📄 smb.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
📖 第 1 页 / 共 4 页
字号:
#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 SMBkeepalive     0x85   /* keepalive */#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 */#define SMBntrename      0xA5   /* NT rename *//* These are the trans subcommands */#define TRANSACT_SETNAMEDPIPEHANDLESTATE  0x01 #define TRANSACT_DCERPCCMD                0x26#define TRANSACT_WAITNAMEDPIPEHANDLESTATE 0x53/* These are the TRANS2 sub commands */#define TRANSACT2_OPEN				0x00#define TRANSACT2_FINDFIRST			0x01#define TRANSACT2_FINDNEXT			0x02#define TRANSACT2_QFSINFO			0x03#define TRANSACT2_SETFSINFO			0x04#define TRANSACT2_QPATHINFO			0x05#define TRANSACT2_SETPATHINFO			0x06#define TRANSACT2_QFILEINFO			0x07#define TRANSACT2_SETFILEINFO			0x08#define TRANSACT2_FSCTL				0x09#define TRANSACT2_IOCTL				0x0A#define TRANSACT2_FINDNOTIFYFIRST		0x0B#define TRANSACT2_FINDNOTIFYNEXT		0x0C#define TRANSACT2_MKDIR				0x0D#define TRANSACT2_SESSION_SETUP			0x0E#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#define NT_TRANSACT_GET_USER_QUOTA	  7#define NT_TRANSACT_SET_USER_QUOTA	  8/* These are the NT transact_get_user_quota sub commands */#define TRANSACT_GET_USER_QUOTA_LIST_CONTINUE	0x0000#define TRANSACT_GET_USER_QUOTA_LIST_START	0x0100#define TRANSACT_GET_USER_QUOTA_FOR_SID		0x0101/* Relevant IOCTL codes */#define IOCTL_QUERY_JOB_INFO      0x530060/* 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#define SMB_SHARE_IN_DFS               0x0002/* Named pipe write mode flags. Used in writeX calls. */#define PIPE_RAW_MODE 0x4#define PIPE_START_MESSAGE 0x8/* File Specific access rights */#define FILE_READ_DATA        0x00000001#define FILE_WRITE_DATA       0x00000002#define FILE_APPEND_DATA      0x00000004#define FILE_READ_EA          0x00000008 /* File and directory */#define FILE_WRITE_EA         0x00000010 /* File and directory */#define FILE_EXECUTE          0x00000020#define FILE_DELETE_CHILD     0x00000040#define FILE_READ_ATTRIBUTES  0x00000080#define FILE_WRITE_ATTRIBUTES 0x00000100#define FILE_ALL_ACCESS       0x000001FF/* Directory specific access rights */#define FILE_LIST_DIRECTORY   0x00000001#define FILE_ADD_FILE         0x00000002#define FILE_ADD_SUBDIRECTORY 0x00000004#define FILE_TRAVERSE         0x00000020#define FILE_DELETE_CHILD     0x00000040/* the desired access to use when opening a pipe */#define DESIRED_ACCESS_PIPE 0x2019f /* Generic access masks & rights. */#define DELETE_ACCESS        0x00010000 /* (1L<<16) */#define READ_CONTROL_ACCESS  0x00020000 /* (1L<<17) */#define WRITE_DAC_ACCESS     0x00040000 /* (1L<<18) */#define WRITE_OWNER_ACCESS   0x00080000 /* (1L<<19) */#define SYNCHRONIZE_ACCESS   0x00100000 /* (1L<<20) */#define SYSTEM_SECURITY_ACCESS 0x01000000 /* (1L<<24) */#define MAXIMUM_ALLOWED_ACCESS 0x02000000 /* (1L<<25) */#define GENERIC_ALL_ACCESS     0x10000000 /* (1<<28) */#define GENERIC_EXECUTE_ACCESS 0x20000000 /* (1<<29) */#define GENERIC_WRITE_ACCESS   0x40000000 /* (1<<30) */#define GENERIC_READ_ACCESS    ((unsigned)0x80000000) /* (((unsigned)1)<<31) *//* Mapping of generic access rights for files to specific rights. */#define FILE_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED_ACCESS| SYNCHRONIZE_ACCESS|FILE_ALL_ACCESS)#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ_ACCESS|FILE_READ_DATA|FILE_READ_ATTRIBUTES|\							FILE_READ_EA|SYNCHRONIZE_ACCESS)#define FILE_GENERIC_WRITE (STD_RIGHT_READ_CONTROL_ACCESS|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|\							FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONIZE_ACCESS)#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE_ACCESS|\								FILE_EXECUTE|SYNCHRONIZE_ACCESS)/* Mapping of access rights to UNIX perms. */#define UNIX_ACCESS_RWX		FILE_GENERIC_ALL#define UNIX_ACCESS_R 		FILE_GENERIC_READ#define UNIX_ACCESS_W		FILE_GENERIC_WRITE#define UNIX_ACCESS_X		FILE_GENERIC_EXECUTE/* Mapping of access rights to UNIX perms. for a UNIX directory. */#define UNIX_DIRECTORY_ACCESS_RWX		FILE_GENERIC_ALL#define UNIX_DIRECTORY_ACCESS_R 		FILE_GENERIC_READ#define UNIX_DIRECTORY_ACCESS_W			FILE_GENERIC_WRITE#define UNIX_DIRECTORY_ACCESS_X			FILE_GENERIC_EXECUTE#if 0/* * This is the old mapping we used to use. To get W2KSP2 profiles * working we need to map to the canonical file perms. */#define UNIX_ACCESS_RWX (UNIX_ACCESS_R|UNIX_ACCESS_W|UNIX_ACCESS_X)#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)#endif#define UNIX_ACCESS_NONE (WRITE_OWNER_ACCESS)/* Flags field. */#define REQUEST_OPLOCK 2#define REQUEST_BATCH_OPLOCK 4#define OPEN_DIRECTORY 8#define EXTENDED_RESPONSE_REQUIRED 0x10/* 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		0x001L#define FILE_ATTRIBUTE_HIDDEN		0x002L#define FILE_ATTRIBUTE_SYSTEM		0x004L#define FILE_ATTRIBUTE_DIRECTORY	0x010L#define FILE_ATTRIBUTE_ARCHIVE		0x020L#define FILE_ATTRIBUTE_NORMAL		0x080L#define FILE_ATTRIBUTE_TEMPORARY	0x100L#define FILE_ATTRIBUTE_SPARSE		0x200L#define FILE_ATTRIBUTE_REPARSE_POINT    0x400L#define FILE_ATTRIBUTE_COMPRESSED	0x800L#define FILE_ATTRIBUTE_OFFLINE          0x1000L#define FILE_ATTRIBUTE_NONINDEXED	0x2000L#define FILE_ATTRIBUTE_ENCRYPTED        0x4000L#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		/* File exists overwrite/supersede. File not exist create. */#define FILE_OPEN 1			/* File exists open. File not exist fail. */#define FILE_CREATE 2			/* File exists fail. File not exist create. */#define FILE_OPEN_IF 3			/* File exists open. File not exist create. */#define FILE_OVERWRITE 4		/* File exists overwrite. File not exist fail. */#define FILE_OVERWRITE_IF 5		/* File exists overwrite. File not exist create. *//* 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#define FILE_OPEN_BY_FILE_ID	  0x2000/* Private create options used by the ntcreatex processing code. From Samba4. */#define NTCREATEX_OPTIONS_PRIVATE_DENY_DOS     0x01000000#define NTCREATEX_OPTIONS_PRIVATE_DENY_FCB     0x02000000/* Responses when opening a file. */#define FILE_WAS_SUPERSEDED 0#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/* Flag for NT transact rename call. */#define RENAME_REPLACE_IF_EXISTS 1/* flags for SMBntrename call (from Samba4) */#define RENAME_FLAG_MOVE_CLUSTER_INFORMATION 0x102 /* ???? */#define RENAME_FLAG_HARD_LINK                0x103#define RENAME_FLAG_RENAME                   0x104#define RENAME_FLAG_COPY                     0x105/* Filesystem Attributes. */#define FILE_CASE_SENSITIVE_SEARCH      0x00000001#define FILE_CASE_PRESERVED_NAMES       0x00000002#define FILE_UNICODE_ON_DISK            0x00000004/* According to cifs9f, this is 4, not 8 *//* Acconding to testing, this actually sets the security attribute! */#define FILE_PERSISTENT_ACLS            0x00000008#define FILE_FILE_COMPRESSION           0x00000010#define FILE_VOLUME_QUOTAS              0x00000020#define FILE_SUPPORTS_SPARSE_FILES      0x00000040#define FILE_SUPPORTS_REPARSE_POINTS    0x00000080#define FILE_SUPPORTS_REMOTE_STORAGE    0x00000100#define FS_LFN_APIS                     0x00004000#define FILE_VOLUME_IS_COMPRESSED       0x00008000#define FILE_SUPPORTS_OBJECT_IDS        0x00010000#define FILE_SUPPORTS_ENCRYPTION        0x00020000#define FILE_NAMED_STREAMS              0x00040000#define FILE_READ_ONLY_VOLUME           0x00080000/* ChangeNotify flags. */#define FILE_NOTIFY_CHANGE_FILE        0x001#define FILE_NOTIFY_CHANGE_DIR_NAME    0x002#define FILE_NOTIFY_CHANGE_ATTRIBUTES  0x004#define FILE_NOTIFY_CHANGE_SIZE        0x008#define FILE_NOTIFY_CHANGE_LAST_WRITE  0x010#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x020#define FILE_NOTIFY_CHANGE_CREATION    0x040#define FILE_NOTIFY_CHANGE_EA          0x080#define FILE_NOTIFY_CHANGE_SECURITY    0x100#define FILE_NOTIFY_CHANGE_FILE_NAME   0x200/* where to find the base of the SMB packet proper */#define smb_base(buf) (((char *)(buf))+4)/* we don't allow server strings to be longer than 48 characters as   otherwise NT will not honour the announce packets */#define MAX_SERVER_STRING_LENGTH 48#define SMB_SUCCESS 0  /* The request was successful. */#ifdef WITH_DFSvoid dfs_unlogin(void);extern int dcelogin_atmost_once;#endif#ifdef NOSTRDUPchar *strdup(char *s);#endif#ifndef SIGNAL_CAST#define SIGNAL_CAST (RETSIGTYPE (*)(int))#endif#ifndef SELECT_CAST#define SELECT_CAST#endif/* these are used in NetServerEnum to choose what to receive */#define SV_TYPE_WORKSTATION         0x00000001#define SV_TYPE_SERVER              0x00000002#define SV_TYPE_SQLSERVER           0x00000004#define SV_TYPE_DOMAIN_CTRL         0x00000008#define SV_TYPE_DOMAIN_BAKCTRL      0x00000010#define SV_TYPE_TIME_SOURCE         0x00000020#define SV_TYPE_AFP                 0x00000040#define SV_TYPE_NOVELL              0x00000080#define SV_TYPE_DOMAIN_MEMBER       0x00000100#define SV_TYPE_PRINTQ_SERVER       0x00000200#define SV_TYPE_DIALIN_SERVER       0x00000400#define SV_TYPE_SERVER_UNIX         0x00000800#define SV_TYPE_NT                  0x00001000#define SV_TYPE_WFW                 0x00002000#define SV_TYPE_SERVER_MFPN         0x00004000#define SV_TYPE_SERVER_NT           0x00008000#define SV_TYPE_POTENTIAL_BROWSER   0x00010000#define SV_TYPE_BACKUP_BROWSER      0x00020000#define SV_TYPE_MASTER_BROWSER      0x00040000#define SV_TYPE_DOMAIN_MASTER       0x00080000#define SV_TYPE_SERVER_OSF          0x00100000#define SV_TYPE_SERVER_VMS          0x00200000#define SV_TYPE_WIN95_PLUS          0x00400000

⌨️ 快捷键说明

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