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 + -
显示快捷键?