📄 smblib-common.h
字号:
/* UNIX SMBlib NetBIOS implementation * * Version 1.0 * SMBlib Common Defines * * Copyright (C) Richard Sharpe 1996 * *//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* To get the error class we want the first 8 bits *//* Because we just grab 4bytes from the SMB header, we have to re-order *//* here, but it makes the NtStatus part easier in future */#ifndef _SMBLIB_COMMON_H_#define _SMBLIB_COMMON_H_#define SMBlib_Error_Class(p) (p & 0x000000FF)/* To get the error code, we want the bottom 16 bits */#define SMBlib_Error_Code(p) (((unsigned int)p & 0xFFFF0000) >>16)/* Error CLASS codes and etc ... */#define SMBC_SUCCESS 0#define SMBC_ERRDOS 0x01#define SMBC_ERRSRV 0x02#define SMBC_ERRHRD 0x03#define SMBC_ERRCMD 0xFF/* Success error codes */#define SMBS_BUFFERED 0x54#define SMBS_LOGGED 0x55#define SMBS_DISPLAYED 0x56/* ERRDOS Error codes */#define SMBD_badfunc 0x01#define SMBD_badfile 0x02#define SMBD_badpath 0x03#define SMBD_nofids 0x04#define SMBD_noaccess 0x05#define SMBD_badfid 0x06#define SMBD_badmcb 0x07#define SMBD_nomem 0x08#define SMBD_badmem 0x09#define SMBD_badenv 0x0A#define SMBD_badformat 0x0B#define SMBD_badaccess 0x0C#define SMBD_baddata 0x0D#define SMBD_reserved 0x0E#define SMBD_baddrive 0x0F#define SMBD_remcd 0x10#define SMBD_diffdevice 0x11#define SMBD_nofiles 0x12#define SMBD_badshare 0x20#define SMBD_errlock 0x21#define SMBD_filexists 0x50/* Server errors ... */#define SMBV_error 0x01 /* Generic error */#define SMBV_badpw 0x02#define SMBV_badtype 0x03#define SMBV_access 0x04#define SMBV_invnid 0x05#define SMBV_invnetname 0x06#define SMBV_invdevice 0x07#define SMBV_qfull 0x31#define SMBV_qtoobig 0x32#define SMBV_qeof 0x33#define SMBV_invpfid 0x34#define SMBV_paused 0x51#define SMBV_msgoff 0x52#define SMBV_noroom 0x53#define SMBV_rmuns 0x57#define SMBV_nosupport 0xFFFF/* Hardware error codes ... */#define SMBH_nowrite 0x13#define SMBH_badunit 0x14#define SMBH_notready 0x15#define SMBH_badcmd 0x16#define SMBH_data 0x17#define SMBH_badreq 0x18#define SMBH_seek 0x19#define SMBH_badmedia 0x1A#define SMBH_badsector 0x1B#define SMBH_nopaper 0x1C#define SMBH_write 0x1D#define SMBH_read 0x1E#define SMBH_general 0x1F#define SMBH_badshare 0x20/* Access mode defines ... */#define SMB_AMODE_WTRU 0x4000#define SMB_AMODE_NOCACHE 0x1000#define SMB_AMODE_COMPAT 0x0000#define SMB_AMODE_DENYRWX 0x0010#define SMB_AMODE_DENYW 0x0020#define SMB_AMODE_DENYRX 0x0030#define SMB_AMODE_DENYNONE 0x0040#define SMB_AMODE_OPENR 0x0000#define SMB_AMODE_OPENW 0x0001#define SMB_AMODE_OPENRW 0x0002#define SMB_AMODE_OPENX 0x0003#define SMB_AMODE_FCBOPEN 0x00FF#define SMB_AMODE_LOCUNKN 0x0000#define SMB_AMODE_LOCMSEQ 0x0100#define SMB_AMODE_LOCMRAN 0x0200#define SMB_AMODE_LOCRAL 0x0300/* File attribute encoding ... */#define SMB_FA_ORD 0x00#define SMB_FA_ROF 0x01#define SMB_FA_HID 0x02#define SMB_FA_SYS 0x04#define SMB_FA_VOL 0x08#define SMB_FA_DIR 0x10#define SMB_FA_ARC 0x20/* Define the protocol types ... */#define SMB_P_Unknown -1 /* Hmmm, is this smart? */#define SMB_P_Core 0#define SMB_P_CorePlus 1#define SMB_P_DOSLanMan1 2#define SMB_P_LanMan1 3#define SMB_P_DOSLanMan2 4#define SMB_P_LanMan2 5#define SMB_P_DOSLanMan2_1 6#define SMB_P_LanMan2_1 7#define SMB_P_NT1 8/* SMBlib return codes *//* We want something that indicates whether or not the return code was a *//* remote error, a local error in SMBlib or returned from lower layer ... *//* Wonder if this will work ... *//* SMBlibE_Remote = 1 indicates remote error *//* SMBlibE_ values < 0 indicate local error with more info available *//* SMBlibE_ values >1 indicate local from SMBlib code errors? */#define SMBlibE_Success 0#define SMBlibE_Remote 1 /* Remote error, get more info from con */#define SMBlibE_BAD -1#define SMBlibE_LowerLayer 2 /* Lower layer error */#define SMBlibE_NotImpl 3 /* Function not yet implemented */#define SMBlibE_ProtLow 4 /* Protocol negotiated does not support req */#define SMBlibE_NoSpace 5 /* No space to allocate a structure */#define SMBlibE_BadParam 6 /* Bad parameters */#define SMBlibE_NegNoProt 7 /* None of our protocols was liked */#define SMBlibE_SendFailed 8 /* Sending an SMB failed */#define SMBlibE_RecvFailed 9 /* Receiving an SMB failed */#define SMBlibE_GuestOnly 10 /* Logged in as guest */#define SMBlibE_CallFailed 11 /* Call remote end failed */#define SMBlibE_ProtUnknown 12 /* Protocol unknown */#define SMBlibE_NoSuchMsg 13 /* Keep this up to date */typedef struct { /* A structure for a Dirent */ unsigned char resume_key[21]; /* Don't touch this */ unsigned char file_attributes; /* Attributes of file */ unsigned int date_time; /* date and time of last mod */ unsigned int size; char filename[13]; /* The name of the file */} SMB_CP_dirent;#endif /* _SMBLIB_COMMON_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -