Authen-Smb
view release on metacpan or search on metacpan
smbval/smblib-priv.h view on Meta::CPAN
#define SMBreadbraw 0x1a /* read a block of data without smb header ohead*/
#define SMBwritebraw 0x1d /* write a block of data without smb header ohead*/
#define SMBwritec 0x20 /* secondary write request */
#define SMBwriteclose 0x2c /* write a file and 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 SMBtconX 0x75 /* tree connect and X */
#define SMBffirst 0x82 /* find first */
#define SMBfunique 0x83 /* find unique */
#define SMBfclose 0x84 /* find close */
#define SMBinvalid 0xFE /* invalid command */
#define SMBulogoffX 0x74 /* user logoff */
/* Any more ? */
#define SMBdatablockID 0x01 /* A data block identifier */
#define SMBdialectID 0x02 /* A dialect id */
#define SMBpathnameID 0x03 /* A pathname ID */
#define SMBasciiID 0x04 /* An ascii string ID */
#define SMBvariableblockID 0x05 /* A variable block ID */
/* some other defines we need */
/* Flags defines ... */
#define SMB_FLG2_NON_DOS 0x01 /* We know non dos names */
#define SMB_FLG2_EXT_ATR 0x02 /* We know about Extended Attributes */
#define SMB_FLG2_LNG_NAM 0x04 /* Long names ? */
typedef unsigned short WORD;
typedef unsigned short UWORD;
typedef unsigned int ULONG;
typedef unsigned char BYTE;
typedef unsigned char UCHAR;
/* Some macros to allow access to actual packet data so that we */
/* can change the underlying representation of packets. */
/* */
/* The current formats vying for attention are a fragment */
/* approach where the SMB header is a fragment linked to the */
/* data portion with the transport protocol (rfcnb or whatever) */
/* being linked on the front. */
/* */
/* The other approach is where the whole packet is one array */
/* of bytes with space allowed on the front for the packet */
/* headers. */
#define SMB_Hdr(p) (char *)(p -> data)
/* SMB Hdr def for File Sharing Protocol? From MS and Intel, */
/* Intel PN 138446 Doc Version 2.0, Nov 7, 1988. This def also */
/* applies to LANMAN1.0 as well as the Core Protocol */
/* The spec states that wct and bcc must be present, even if 0 */
/* We define these as offsets into a char SMB[] array for the */
/* sake of portability */
/* NOTE!. Some of the lenght defines, SMB_<protreq>_len do not include */
/* the data that follows in the SMB packet, so the code will have to */
/* take that into account. */
#define SMB_hdr_idf_offset 0 /* 0xFF,'SMB' 0-3 */
#define SMB_hdr_com_offset 4 /* BYTE 4 */
#define SMB_hdr_rcls_offset 5 /* BYTE 5 */
#define SMB_hdr_reh_offset 6 /* BYTE 6 */
#define SMB_hdr_err_offset 7 /* WORD 7 */
#define SMB_hdr_reb_offset 9 /* BYTE 9 */
#define SMB_hdr_flg_offset 9 /* same as reb ...*/
#define SMB_hdr_res_offset 10 /* 7 WORDs 10 */
#define SMB_hdr_res0_offset 10 /* WORD 10 */
#define SMB_hdr_flg2_offset 10 /* WORD */
#define SMB_hdr_res1_offset 12 /* WORD 12 */
#define SMB_hdr_res2_offset 14
#define SMB_hdr_res3_offset 16
#define SMB_hdr_res4_offset 18
#define SMB_hdr_res5_offset 20
#define SMB_hdr_res6_offset 22
#define SMB_hdr_tid_offset 24
#define SMB_hdr_pid_offset 26
#define SMB_hdr_uid_offset 28
#define SMB_hdr_mid_offset 30
#define SMB_hdr_wct_offset 32
#define SMB_hdr_len 33 /* 33 byte header? */
#define SMB_hdr_axc_offset 33 /* AndX Command */
#define SMB_hdr_axr_offset 34 /* AndX Reserved */
#define SMB_hdr_axo_offset 35 /* Offset from start to WCT of AndX cmd */
/* Format of the Negotiate Protocol SMB */
#define SMB_negp_bcc_offset 33
#define SMB_negp_buf_offset 35 /* Where the buffer starts */
#define SMB_negp_len 35 /* plus the data */
/* Format of the Negotiate Response SMB, for CoreProtocol, LM1.2 and */
/* NT LM 0.12. wct will be 1 for CoreProtocol, 13 for LM 1.2, and 17 */
/* for NT LM 0.12 */
#define SMB_negrCP_idx_offset 33 /* Response to the neg req */
( run in 0.858 second using v1.01-cache-2.11-cpan-364913b4093 )