smb.h

来自「samba最新软件」· C头文件 代码 · 共 599 行 · 第 1/2 页

H
599
字号
#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 *//* used to indicate end of chain */#define SMB_CHAIN_NONE   0xFF/* These are the trans subcommands */#define TRANSACT_SETNAMEDPIPEHANDLESTATE  0x01 #define TRANSACT_DCERPCCMD                0x26#define TRANSACT_WAITNAMEDPIPEHANDLESTATE 0x53/* 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/* 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/* the desired access to use when opening a pipe */#define DESIRED_ACCESS_PIPE 0x2019f /* Mapping of generic access rights for files to specific rights. */#define FILE_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED_ACCESS| NT_ACCESS_SYNCHRONIZE_ACCESS|FILE_ALL_ACCESS)#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ_ACCESS|FILE_READ_DATA|FILE_READ_ATTRIBUTES|\							FILE_READ_EA|NT_ACCESS_SYNCHRONIZE_ACCESS)#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE_ACCESS|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|\			    FILE_WRITE_EA|FILE_APPEND_DATA|NT_ACCESS_SYNCHRONIZE_ACCESS)#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE_ACCESS|FILE_READ_ATTRIBUTES|\			    FILE_EXECUTE|NT_ACCESS_SYNCHRONIZE_ACCESS)/* FileAttributes (search attributes) field */#define FILE_ATTRIBUTE_READONLY		0x0001#define FILE_ATTRIBUTE_HIDDEN		0x0002#define FILE_ATTRIBUTE_SYSTEM		0x0004#define FILE_ATTRIBUTE_VOLUME		0x0008#define FILE_ATTRIBUTE_DIRECTORY	0x0010#define FILE_ATTRIBUTE_ARCHIVE		0x0020#define FILE_ATTRIBUTE_DEVICE		0x0040#define FILE_ATTRIBUTE_NORMAL		0x0080#define FILE_ATTRIBUTE_TEMPORARY	0x0100#define FILE_ATTRIBUTE_SPARSE		0x0200#define FILE_ATTRIBUTE_REPARSE_POINT	0x0400#define FILE_ATTRIBUTE_COMPRESSED	0x0800#define FILE_ATTRIBUTE_OFFLINE		0x1000#define FILE_ATTRIBUTE_NONINDEXED	0x2000#define FILE_ATTRIBUTE_ENCRYPTED	0x4000#define FILE_ATTRIBUTE_ALL_MASK 	0x7FFF/* 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 /* only if backup/restore privilege? */#define FILE_FLAG_POSIX_SEMANTICS  0x01000000L/* 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 */#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 0x01#define FILE_CASE_PRESERVED_NAMES 0x02#define FILE_UNICODE_ON_DISK 0x04/* According to cifs9f, this is 4, not 8 *//* Acconding to testing, this actually sets the security attribute! */#define FILE_PERSISTENT_ACLS 0x08/* These entries added from cifs9f --tsb */#define FILE_FILE_COMPRESSION 0x10#define FILE_VOLUME_QUOTAS 0x20/* I think this is wrong. JRA #define FILE_DEVICE_IS_MOUNTED 0x20 */#define FILE_VOLUME_SPARSE_FILE 0x40#define FILE_VOLUME_IS_COMPRESSED 0x8000/* ChangeNotify flags. */#define FILE_NOTIFY_CHANGE_FILE_NAME	0x00000001#define FILE_NOTIFY_CHANGE_DIR_NAME	0x00000002#define FILE_NOTIFY_CHANGE_ATTRIBUTES	0x00000004#define FILE_NOTIFY_CHANGE_SIZE		0x00000008#define FILE_NOTIFY_CHANGE_LAST_WRITE	0x00000010#define FILE_NOTIFY_CHANGE_LAST_ACCESS	0x00000020#define FILE_NOTIFY_CHANGE_CREATION	0x00000040#define FILE_NOTIFY_CHANGE_EA		0x00000080#define FILE_NOTIFY_CHANGE_SECURITY	0x00000100#define FILE_NOTIFY_CHANGE_STREAM_NAME	0x00000200#define FILE_NOTIFY_CHANGE_STREAM_SIZE	0x00000400#define FILE_NOTIFY_CHANGE_STREAM_WRITE	0x00000800#define FILE_NOTIFY_CHANGE_NAME \	(FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME)/* change notify action results */#define NOTIFY_ACTION_ADDED 1#define NOTIFY_ACTION_REMOVED 2#define NOTIFY_ACTION_MODIFIED 3#define NOTIFY_ACTION_OLD_NAME 4#define NOTIFY_ACTION_NEW_NAME 5#define NOTIFY_ACTION_ADDED_STREAM 6#define NOTIFY_ACTION_REMOVED_STREAM 7#define NOTIFY_ACTION_MODIFIED_STREAM 8/* seek modes for smb_seek */#define SEEK_MODE_START   0#define SEEK_MODE_CURRENT 1#define SEEK_MODE_END     2/* where to find the base of the SMB packet proper *//* REWRITE TODO: smb_base needs to be removed */#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/* This was set by JHT in liaison with Jeremy Allison early 1997 * History: * Version 4.0 - never made public * Version 4.10 - New to 1.9.16p2, lost in space 1.9.16p3 to 1.9.16p9 *              - Reappeared in 1.9.16p11 with fixed smbd services * Version 4.20 - To indicate that nmbd and browsing now works better * Version 4.50 - Set at release of samba-2.2.0 by JHT * *  Note: In the presence of NT4.X do not set above 4.9 *        Setting this above 4.9 can have undesired side-effects. *        This may change again in Samba-3.0 after further testing. JHT */ #define DEFAULT_MAJOR_VERSION 0x04#define DEFAULT_MINOR_VERSION 0x09/* Browser Election Values */#define BROWSER_ELECTION_VERSION	0x010f#define BROWSER_CONSTANT	0xaa55/* Sercurity mode bits. */#define NEGOTIATE_SECURITY_USER_LEVEL		0x01#define NEGOTIATE_SECURITY_CHALLENGE_RESPONSE	0x02#define NEGOTIATE_SECURITY_SIGNATURES_ENABLED	0x04#define NEGOTIATE_SECURITY_SIGNATURES_REQUIRED	0x08/* NT Flags2 bits - cifs6.txt section 3.1.2 */#define FLAGS2_LONG_PATH_COMPONENTS    0x0001#define FLAGS2_EXTENDED_ATTRIBUTES     0x0002#define FLAGS2_SMB_SECURITY_SIGNATURES 0x0004#define FLAGS2_IS_LONG_NAME            0x0040#define FLAGS2_EXTENDED_SECURITY       0x0800 #define FLAGS2_DFS_PATHNAMES           0x1000#define FLAGS2_READ_PERMIT_EXECUTE     0x2000#define FLAGS2_32_BIT_ERROR_CODES      0x4000 #define FLAGS2_UNICODE_STRINGS         0x8000/* CIFS protocol capabilities */#define CAP_RAW_MODE		0x00000001#define CAP_MPX_MODE		0x00000002#define CAP_UNICODE		0x00000004#define CAP_LARGE_FILES		0x00000008#define CAP_NT_SMBS		0x00000010#define CAP_RPC_REMOTE_APIS	0x00000020#define CAP_STATUS32		0x00000040#define CAP_LEVEL_II_OPLOCKS	0x00000080#define CAP_LOCK_AND_READ	0x00000100#define CAP_NT_FIND		0x00000200#define CAP_DFS			0x00001000#define CAP_W2K_SMBS		0x00002000#define CAP_LARGE_READX		0x00004000#define CAP_LARGE_WRITEX	0x00008000#define CAP_UNIX		0x00800000 /* Capabilities for UNIX extensions. Created by HP. */#define CAP_EXTENDED_SECURITY	0x80000000/* * Global value meaning that the smb_uid field should be * ingored (in share level security and protocol level == CORE) */#define UID_FIELD_INVALID 0/* Lock types. */#define LOCKING_ANDX_SHARED_LOCK     0x01#define LOCKING_ANDX_OPLOCK_RELEASE  0x02#define LOCKING_ANDX_CHANGE_LOCKTYPE 0x04#define LOCKING_ANDX_CANCEL_LOCK     0x08#define LOCKING_ANDX_LARGE_FILES     0x10/* * Bits we test with. */#define OPLOCK_NONE      0#define OPLOCK_EXCLUSIVE 1#define OPLOCK_BATCH     2#define OPLOCK_LEVEL_II  4#define CORE_OPLOCK_GRANTED (1<<5)#define EXTENDED_OPLOCK_GRANTED (1<<15)/* * Return values for oplock types. */#define NO_OPLOCK_RETURN 0#define EXCLUSIVE_OPLOCK_RETURN 1#define BATCH_OPLOCK_RETURN 2#define LEVEL_II_OPLOCK_RETURN 3/* oplock levels sent in oplock break */#define OPLOCK_BREAK_TO_NONE     0#define OPLOCK_BREAK_TO_LEVEL_II 1#define CMD_REPLY 0x8000/* The maximum length of a trust account password.   Used when we randomly create it, 15 char passwords   exceed NT4's max password length */#define DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH 14/*  filesystem attribute bits*/#define FS_ATTR_CASE_SENSITIVE_SEARCH             0x00000001#define FS_ATTR_CASE_PRESERVED_NAMES              0x00000002#define FS_ATTR_UNICODE_ON_DISK                   0x00000004#define FS_ATTR_PERSISTANT_ACLS                   0x00000008#define FS_ATTR_COMPRESSION                       0x00000010#define FS_ATTR_QUOTAS                            0x00000020#define FS_ATTR_SPARSE_FILES                      0x00000040#define FS_ATTR_REPARSE_POINTS                    0x00000080#define FS_ATTR_REMOTE_STORAGE                    0x00000100#define FS_ATTR_LFN_SUPPORT                       0x00004000#define FS_ATTR_IS_COMPRESSED                     0x00008000#define FS_ATTR_OBJECT_IDS                        0x00010000#define FS_ATTR_ENCRYPTION                        0x00020000#define FS_ATTR_NAMED_STREAMS                     0x00040000#define smb_len(buf) (PVAL(buf,3)|(PVAL(buf,2)<<8)|(PVAL(buf,1)<<16))#define _smb_setlen(buf,len) do {(buf)[0] = 0; (buf)[1] = ((len)&0x10000)>>16; \        (buf)[2] = ((len)&0xFF00)>>8; (buf)[3] = (len)&0xFF;} while (0)#define _smb2_setlen(buf,len) do {(buf)[0] = 0; (buf)[1] = ((len)&0xFF0000)>>16; \        (buf)[2] = ((len)&0xFF00)>>8; (buf)[3] = (len)&0xFF;} while (0)#include "libcli/raw/trans2.h"#include "libcli/raw/interfaces.h"#endif /* _SMB_H */

⌨️ 快捷键说明

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