summaryrefslogtreecommitdiff
path: root/source3/aparser/cifs.struct
diff options
context:
space:
mode:
Diffstat (limited to 'source3/aparser/cifs.struct')
-rw-r--r--source3/aparser/cifs.struct1029
1 files changed, 0 insertions, 1029 deletions
diff --git a/source3/aparser/cifs.struct b/source3/aparser/cifs.struct
deleted file mode 100644
index 202f0d7e61..0000000000
--- a/source3/aparser/cifs.struct
+++ /dev/null
@@ -1,1029 +0,0 @@
-module cifs
-
-option autoalign False
-
-
-#define BOOL uint32
-#define UCHAR uint8
-#define WCHAR uint16
-#define USHORT uint16
-#define LONG uint32
-#define ULONG uint32
-#define DWORD uint32
-#define SMB_TIME uint16
-#define SMB_DATE uint16
-
-typedef struct {
- ULONG low;
- LONG high;
-} TIME;
-
-typedef struct {
- ULONG low;
- ULONG high;
-} hyper;
-
-typedef struct {
- uint8 cmd;
- uint8 reserved;
- uint16 offset;
-} ANDX_INFO;
-
-
-typedef struct {
- uint8 tag2;
- STRING protocol;
-} BUF2;
-
-typedef struct {
- uint16 bcount;
- BUF2 protocol[*];
-} Q_NEGPROT_0;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 0 Q_NEGPROT_0 q0;
- }
-} Q_NEGPROT;
-
-typedef struct {
- USHORT DialectIndex; /* Index of selected dialect */
- USHORT SecurityMode; /* Security mode: */
- /* bit 0: 0 = share, 1 = user */
- /* bit 1: 1 = use challenge/response */
- /* authentication */
- USHORT MaxBufferSize; /* Max transmit buffer size (>= 1024) */
- USHORT MaxMpxCount; /* Max pending multiplexed requests */
- USHORT MaxNumberVcs; /* Max VCs between client and server */
- USHORT RawMode; /* Raw modes supported: */
- /* bit 0: 1 = Read Raw supported */
- /* bit 1: 1 = Write Raw supported */
- ULONG SessionKey; /* Unique token identifying this session */
- SMB_TIME ServerTime; /* Current time at server */
- SMB_DATE ServerDate; /* Current date at server */
- USHORT ServerTimeZone; /* Current time zone at server */
- USHORT ChallengeLength; /* Length of Challenge; MBZ if not LM2.1
- /* dialect or later */
- USHORT Reserved; /* MBZ */
- USHORT ByteCount; /* Count of data bytes */
- UCHAR Challenge[ChallengeLength]; /* The challenge */
- STRING PrimaryDomain; /* The server's primary domain */
-
-} R_NEGPROT_12;
-
-typedef struct {
- USHORT DialectIndex; /*Index of selected dialect */
- UCHAR SecurityMode; /*Security mode: */
- /* bit 0: 0 = share, 1 = user */
- /* bit 1: 1 = use challenge/response */
- /* authentication */
- /* bit 2: 1 = Security Signatures (SMB integrity */
- /* check) enabled */
- /* bit 3: 1 = Security Signatures (SMB integrity */
- /* check) required */
- USHORT MaxMpxCount; /*Max pending outstanding requests */
- USHORT MaxNumberVcs; /*Max VCs between client and server */
- ULONG MaxBufferSize; /*Max transmit buffer size */
- ULONG MaxRawSize; /*Maximum raw buffer size */
- ULONG SessionKey; /*Unique token identifying this session */
- ULONG Capabilities; /*Server capabilities */
- ULONG SystemTimeLow; /*System (UTC) time of the server (low). */
- ULONG SystemTimeHigh; /*System (UTC) time of the server (high). */
- USHORT ServerTimeZone;/*Time zone of server (minutes from UTC) */
- UCHAR SecurityBlobLength;/*Length of SecurityBlob */
-
- USHORT bcount; /*Count of data bytes */
- /*UCHAR GUID[16]; A globally unique identifier assigned to the */
- /* server; present only when */
- /* CAP_EXTENDED_SECURITY is on in the */
- /* Capabilities field. */
- UCHAR SecurityBlob[SecurityBlobLength]; /*Opaque Security Blob associated with the */
- /* security package if CAP_EXTENDED_SECURITY is */
- /* on in the Capabilities field; else challenge */
- /* for CIFS challenge/response authentication. */
- STRING OemDomainName[+]; /*The name of the domain (in OEM chars); not */
- /* present if CAP_EXTENDED_SECURITY is on in the */
- /* Capabilities field */
-} R_NEGPROT_17;
-
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 17 R_NEGPROT_17 r17;
- }
-} R_NEGPROT;
-
-typedef struct {
- uint8 wcount;
- uint16 vwv[wcount];
- uint16 bcount;
- uint8 none[bcount];
-} Q_TDIS;
-
-typedef struct {
- uint8 wcount;
- uint16 vwv[wcount];
- uint16 bcount;
- uint8 none[bcount];
-} R_TDIS;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 bcount;
- uint8 none[bcount];
-} R_ULOGOFF_ANDX_2;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 2 R_ULOGOFF_ANDX_2 q2;
- }
-} R_ULOGOFF_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 bcount;
- uint8 none[bcount];
-} Q_ULOGOFF_ANDX_2;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 2 Q_ULOGOFF_ANDX_2 q2;
- }
-} Q_ULOGOFF_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 bufsize;
- uint16 max_mpx;
- uint16 vc;
- ULONG sess_key;
- uint16 pwlen;
- ULONG reserved;
-
- uint16 bcount;
- uint8 password[pwlen];
- STRING domain;
- STRING os;
- STRING server;
-
-} Q_SESSION_SETUP_ANDX_10;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 bufsize;
- uint16 max_mpx;
- uint16 vc;
- ULONG sess_key;
- uint16 pwlen;
- uint16 upwlen;
- ULONG capabilities;
- ULONG reserved;
-
- uint16 bcount;
- uint8 password[pwlen];
- uint8 upassword[upwlen];
- STRING user;
- STRING domain;
- STRING os;
- STRING server;
-
-} Q_SESSION_SETUP_ANDX_13;
-
-typedef struct _Q_SESSION_SETUP_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 10 Q_SESSION_SETUP_ANDX_10 q10;
- case 13 Q_SESSION_SETUP_ANDX_13 q13;
- }
-} Q_SESSION_SETUP_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 vwv2;
- uint16 passlen;
- uint16 bcount;
- uint8 password[passlen];
- STRING path;
- STRING device;
-} Q_TCON_ANDX_4;
-
-typedef struct _Q_TCON_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 4 Q_TCON_ANDX_4 q4;
- }
-} Q_TCON_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 vwv2;
- uint16 bcount;
- STRING share;
-} R_TCON_ANDX_3;
-
-typedef struct _R_TCON_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 3 R_TCON_ANDX_3 q3;
- }
-} R_TCON_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint16 action;
-
- uint16 count;
- STRING os;
- STRING server;
- STRING domain;
-} R_SESSION_SETUP_ANDX_10;
-
-typedef struct _R_SESSION_SETUP_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 3 R_SESSION_SETUP_ANDX_10 r3;
- }
-} R_SESSION_SETUP_ANDX;
-
-
-typedef struct _R_CLOSE {
- uint8 wcount;
- uint16 count;
- uint8 none[count];
-
-} R_CLOSE;
-
-typedef struct _Q_CLOSE {
- uint8 wcount;
- uint16 fnum;
- uint32 vwv1;
-
- uint16 count;
- uint8 none[count];
-
-} Q_CLOSE;
-
-typedef struct {
- uint16 dsize;
- uint16 bsizehi;
- uint16 bsizelo;
- uint16 avail;
- uint16 vwv4;
-
- uint16 bcount;
- uint8 none[bcount];
-
-} R_DSKATTR_5;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 5 R_DSKATTR_5 r5;
- }
-} R_DSKATTR;
-
-typedef struct {
- uint16 count;
- uint8 none[count];
-
-} Q_DSKATTR_0;
-
-typedef struct _Q_DSKATTR {
- uint8 wcount;
- union ctr[wcount] {
- case 0 Q_DSKATTR_0 q1;
- }
-
-} Q_DSKATTR;
-
-typedef struct {
- ANDX_INFO andx;
-
- uint16 bcount;
- uint8 none[bcount];
-
-} R_LOCKING_2;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 2 R_LOCKING_2 r2;
- }
-} R_LOCKING_ANDX;
-
-/* XXXX must do a switch on bit 0x10 to do large locks XXXX */
-/* LockType Flag Name Value Description */
-
-#define LOCKING_ANDX_SHARED_LOCK 0x01 /* Read-only lock */
-#define LOCKING_ANDX_OPLOCK_RELEASE 0x02 /* Oplock break notification */
-#define LOCKING_ANDX_CHANGE_LOCKTYPE 0x04 /* Change lock type */
-#define LOCKING_ANDX_CANCEL_LOCK 0x08 /* Cancel outstanding request */
-#define LOCKING_ANDX_LARGE_FILES 0x10 /* Large file locking format */
-
-typedef struct {
- USHORT Pid; /* PID of process "owning" lock */
- ULONG Offset; /* Offset to bytes to [un]lock */
- ULONG Length; /* Number of bytes to [un]lock */
-} LOCKING_ANDX_RANGE_SHORT;
-
-typedef struct {
- USHORT Pid; /* PID of process "owning" lock */
- .align4 0;
- ULONG OffsetHigh; /* Offset to bytes to [un]lock (high) */
- ULONG OffsetLow; /* Offset to bytes to [un]lock (low) */
- ULONG LengthHigh; /* Number of bytes to [un]lock (high) */
- ULONG LengthLow; /* Number of bytes to [un]lock (low) */
-
-} LOCKING_ANDX_RANGE_LARGE;
-
-/* typedef struct { */
- /* union ctr[LockType&0x10] { */
- /* case 0 LOCKING_ANDX_RANGE_SHORT ls; */
- /* case 0x10 LOCKING_ANDX_RANGE_LARGE ll; */
- /* } */
-/* } LOCKING_ANDX_RANGE; */
-
-typedef struct {
- ANDX_INFO andx;
-
- USHORT Fid; /* File handle */
- UCHAR LockType; /* See LockType table below */
- UCHAR OplockLevel; /* The new oplock level */
- ULONG Timeout; /* Milliseconds to wait for unlock */
- USHORT NumberOfUnlocks; /* Num. unlock range structs following */
- USHORT NumberOfLocks; /* Num. lock range structs following */
-
- USHORT ByteCount; /* Count of data bytes */
- LOCKING_ANDX_RANGE_SHORT Unlocks[NumberOfUnlocks]; /* Unlock ranges */
- LOCKING_ANDX_RANGE_SHORT Locks[NumberOfLocks]; /* Lock ranges */
-
-} Q_LOCKING_8;
-
-typedef struct _Q_LOCKING {
- uint8 wcount;
- union ctr[wcount] {
- case 8 Q_LOCKING_8 q8;
- }
-
-} Q_LOCKING_ANDX;
-
-
-typedef struct {
- uint16 bcount;
- uint8 protocols[bcount];
-
-} R_UNLINK_0;
-
-typedef struct {
- uint8 wcount;
- union ctr[wcount] {
- case 0 R_UNLINK_0 r0;
- }
-} R_UNLINK;
-
-typedef struct {
- uint16 dirtype;
-
- uint16 count;
- uint8 fname[count];
-
-} Q_UNLINK_1;
-
-typedef struct _Q_UNLINK {
- uint8 wcount;
- union ctr[wcount] {
- case 1 Q_UNLINK_1 q1;
- }
-
-} Q_UNLINK;
-
-typedef struct _R_OPEN_ANDX{
- uint8 wcount;
- ANDX_INFO andx;
- uint16 fnum;
- uint16 fmode;
- uint32 mtime;
- uint32 size;
- uint16 rmode;
- uint16 vwv9;
- uint16 vwv10;
- uint16 smb_action;
- uint16 vwv12;
- uint16 vwv13;
- uint16 vwv14;
-
- uint16 count;
- uint8 none[count];
-
-} R_OPEN_ANDX;
-
-typedef struct _Q_OPEN_ANDX{
- uint8 wcount;
- ANDX_INFO andx;
- uint16 fnum;
- uint16 fmode;
- uint32 mtime;
- uint32 size;
- uint16 rmode;
- uint16 vwv9;
- uint16 vwv10;
- uint16 smb_action;
- uint16 vwv12;
- uint16 vwv13;
- uint16 vwv14;
-
- uint16 count;
- uint8 fname[count];
-
-} Q_OPEN_ANDX;
-
-typedef struct _R_READ_ANDX {
- uint8 wcount;
- ANDX_INFO andx;
- uint16 vwv2;
- uint16 vwv3;
- uint16 vwv4;
- uint16 nread;
- uint16 offset;
- uint16 vwv7;
- uint16 vwv8;
- uint16 vwv9;
- uint16 vwv10;
- uint16 vwv11;
-
- uint16 count;
- uint8 data[count];
-
-} R_READ_ANDX;
-
-typedef struct _Q_READ_ANDX_10 {
- ANDX_INFO andx;
- uint16 fnum;
- uint32 startpos;
- uint16 smb_maxcnt;
- uint16 smb_mincnt;
- uint16 vwv7;
- uint16 vwv8;
- uint16 vwv9;
-
- uint16 count;
- uint8 none[count];
-
-} Q_READ_ANDX_10;
-
-typedef struct _Q_READ_ANDX_12 {
- ANDX_INFO andx;
- uint16 fnum;
- uint32 startpos;
- uint16 smb_maxcnt;
- uint16 smb_mincnt;
- uint16 vwv7;
- uint16 vwv8;
- uint16 vwv9;
- uint32 startposhi;
-
- uint16 count;
- uint8 none[count];
-
-} Q_READ_ANDX_12;
-
-typedef struct _Q_READ_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 10 Q_READ_ANDX_10 q10;
- case 12 Q_READ_ANDX_12 q12;
- }
-} Q_READ_ANDX;
-
-typedef struct _R_WRITE_ANDX {
- uint8 wcount;
- ANDX_INFO andx;
- uint16 nwritten;
- uint16 vwv3;
- uint16 vwv4;
- uint16 vwv5;
-
- uint16 count;
- uint8 none[count];
-
-} R_WRITE_ANDX;
-
-typedef struct _Q_WRITE_ANDX_12 {
- ANDX_INFO andx;
- uint16 fnum;
- uint32 startpos;
- uint16 vwv5;
- uint16 vwv6;
- uint16 write_through;
- uint16 vwv8;
- uint16 vwv9;
- uint16 numtowrite;
- uint16 smb_doff;
-
- uint16 count;
- uint8 data[count];
-
-} Q_WRITE_ANDX_12;
-
-typedef struct _Q_WRITE_ANDX_14 {
- ANDX_INFO andx;
- uint16 fnum;
- uint32 startpos;
- uint16 vwv5;
- uint16 vwv6;
- uint16 write_through;
- uint16 vwv8;
- uint16 vwv9;
- uint16 numtowrite;
- uint16 smb_doff;
- uint32 startposhi;
-
- uint16 count;
- uint8 data[count];
-
-} Q_WRITE_ANDX_14;
-
-typedef struct _Q_WRITE_ANDX {
- uint8 wcount;
- union ctr[wcount] {
- case 12 Q_WRITE_ANDX_12 q12;
- case 14 Q_WRITE_ANDX_14 q14;
- }
-} Q_WRITE_ANDX;
-
-
-
-typedef struct _Q_NTTRANS_19 {
- UCHAR MaxSetupCount; /* Max setup words to return */
- USHORT Reserved;
- ULONG TotalParameterCount; /* Total parameter bytes being sent */
- ULONG TotalDataCount; /* Total data bytes being sent */
- ULONG MaxParameterCount; /* Max parameter bytes to return */
- ULONG MaxDataCount; /* Max data bytes to return */
- ULONG ParameterCount; /* Parameter bytes sent this buffer */
- ULONG ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- ULONG DataCount; /* Data bytes sent this buffer */
- ULONG DataOffset; /* Offset (from header start) to data */
- UCHAR SetupCount; /* Count of setup words */
- USHORT Function; /* The transaction function code */
- UCHAR Buffer[1];
- USHORT Setup[SetupCount]; /* Setup words */
- USHORT ByteCount; /* Count of data bytes */
- .align4 0;
- UCHAR Parameters[ParameterCount];/* Parameter bytes */
- .align4 0;
- UCHAR Data[DataCount]; /* Data bytes */
-
-} Q_NTTRANS_19;
-
-typedef struct _Q_NTTRANS {
- uint8 wcount;
- union ctr[wcount] {
- case 19 Q_NTTRANS_19 q19;
- }
-} Q_NTTRANS;
-
-typedef struct _R_NTTRANS_18 {
- UCHAR Reserved[3];
- ULONG TotalParameterCount; /* Total parameter bytes being sent */
- ULONG TotalDataCount; /* Total data bytes being sent */
- ULONG ParameterCount; /* Parameter bytes sent this buffer */
- ULONG ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- ULONG ParameterDisplacement; /* Specifies the offset from the start */
- /* of the overall parameter block to */
- /* the parameter bytes that are */
- /* contained in this message */
- ULONG DataCount; /* Data bytes sent this buffer */
- ULONG DataOffset; /* Offset (from header start) to data */
- ULONG DataDisplacement; /* Specifies the offset from the start */
- /* of the overall data block to the */
- /* data bytes that are contained in */
- /* this message. */
- UCHAR SetupCount; /* Count of setup words */
- USHORT Setup[SetupCount]; /* Setup words */
- USHORT ByteCount; /* Count of data bytes */
- .align4 0;
- UCHAR Parameters[ParameterCount]; /* Parameter bytes */
- .align4 0;
- UCHAR Data[DataCount]; /* Data bytes */
-} R_NTTRANS_18;
-
-typedef struct _R_NTTRANS {
- uint8 wcount;
- union ctr[wcount] {
- case 18 R_NTTRANS_18 q18;
- }
- .align4 2;
-} R_NTTRANS;
-
-/*Setup[0] Transaction2 Value Description */
-/*Subcommand Code */
-/*=============================== ===== ============================= */
-
-#define TRANS2_OPEN2 0x00 /* Create file with extended attributes */
-#define TRANS2_FIND_FIRST2 0x01 /* Begin search for files */
-#define TRANS2_FIND_NEXT2 0x02 /* Resume search for files */
-#define TRANS2_QUERY_FS_INFO 0x03 /* Get file system information
-#define TRANS2_RESERVED4 0x04 /* Reserved */
-#define TRANS2_QUERY_PATH_INFO 0x05 /* Get information about a named file or directory */
-#define TRANS2_SET_PATH_INFO 0x06 /* Set information about a named file or directory */
-#define TRANS2_QUERY_FILE_INFO 0x07 /* Get information about a handle */
-#define TRANS2_SET_FILE_INFO 0x08 /* Set information by handle */
-#define TRANS2_FSCTL 0x09 /* Not implemented by NT server */
-#define TRANS2_IOCTL2 0x0A /* Not implemented by NT server */
-#define TRANS2_FIND_NOTIFY_FIRST 0x0B /* Not implemented by NT server */
-#define TRANS2_FIND_NOTIFY_NEXT 0x0C /* Not implemented by NT server */
-#define TRANS2_CREATE_DIRECTORY 0x0D /* Create directory with extended attributes */
-#define TRANS2_SESSION_SETUP 0x0E /* Session setup with extended security information */
-#define TRANS2_GET_DFS_REFERRAL 0x10 /* Get a DFS referral */
-#define TRANS2_REPORT_DFS_INCONSISTENCY 0x11 /* Report a DFS knowledge inconsistency */
-
-typedef struct {
- USHORT InformationLevel; /* Level of information requested */
-} TRANS2_QUERY_FS_INFO_STRUCT;
-
-#define SMB_INFO_STANDARD 1
-#define SMB_INFO_QUERY_EA_SIZE 2
-#define SMB_SET_FILE_BASIC_INFO 0x101
-#define SMB_SET_FILE_DISPOSITION_INFO 0x102
-#define SMB_SET_FILE_ALLOCATION_INFO 0x103
-#define SMB_SET_FILE_END_OF_FILE_INFO 0x104
-
-
-typedef struct {
- hyper CreationTime;
- hyper LastAccessTime;
- hyper LastWriteTime;
- hyper ChangeTime;
- USHORT Attributes;
- .align4 0;
-} SMB_QUERY_FILE_BASIC_INFO_STRUCT;
-
-
-typedef struct {
- ULONG fs_atr;
- LONG max_len_filename;
- ULONG length;
- uint8 fs[length];
- .align4 2;
-} SMB_QUERY_FS_ATTRIBUTE_INFO_STRUCT;
-
-#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
-#define FILE_CASE_PRESERVED_NAMES 0x00000002
-#define FILE_PRSISTENT_ACLS 0x00000004
-#define FILE_FILE_COMPRESSION 0x00000008
-#define FILE_VOLUME_QUOTAS 0x00000010
-#define FILE_DEVICE_IS_MOUNTED 0x00000020
-#define FILE_VOLUME_IS_COMPRESSED 0x00008000
-
-typedef struct {
- USHORT Fid;
- USHORT InformationLevel;
- USHORT Reserved;
- .align4 0;
-
- union ctr[InformationLevel] {
- case 0x101 SMB_QUERY_FILE_BASIC_INFO_STRUCT t101;
- }
-
-} TRANS2_SET_FILE_INFO_STRUCT;
-
-typedef struct {
- USHORT InformationLevel; /* Level of information requested */
- ULONG Reserved; /* Must be zero */
- STRING FileName; /* File or directory name */
-} TRANS2_QUERY_PATH_INFO_STRUCT;
-
-typedef struct {
- USHORT SearchAttributes;
- USHORT SearchCount;
- USHORT Flags;
- USHORT InformationLevel;
- ULONG SearchStorageType;
- STRING FileName;
-} TRANS2_FIND_FIRST2_STRUCT;
-
-typedef struct _Q_TRANS2_15 {
- USHORT TotalParameterCount; /* Total parameter bytes being sent */
- USHORT TotalDataCount; /* Total data bytes being sent */
- USHORT MaxParameterCount; /* Max parameter bytes to return */
- USHORT MaxDataCount; /* Max data bytes to return */
- UCHAR MaxSetupCount; /* Max setup words to return */
- UCHAR Reserved;
- USHORT Flags; /* Additional information: */
- /* bit 0 - also disconnect TID in TID */
- ULONG Timeout;
- USHORT Reserved2;
- USHORT ParameterCount; /* Parameter bytes sent this buffer */
- USHORT ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- USHORT DataCount; /* Data bytes sent this buffer */
- USHORT DataOffset; /* Offset (from header start) to data */
- UCHAR SetupCount; /* Count of setup words */
- UCHAR Reserved3; /* Reserved (pad above to word) */
- USHORT Setup[SetupCount]; /* Setup words (# = SetupWordCount) */
- USHORT ByteCount; /* Count of data bytes */
- .align4 0;
- union ctr[Setup[0]] {
- case 1 TRANS2_FIND_FIRST2_STRUCT t1;
- case 3 TRANS2_QUERY_FS_INFO_STRUCT t3;
- case 5 TRANS2_QUERY_PATH_INFO_STRUCT t5;
- case 8 TRANS2_SET_FILE_INFO_STRUCT t8;
- }
-
-} Q_TRANS2_15;
-
-typedef struct _Q_TRANS2 {
- uint8 wcount;
- union ctr[wcount] {
- case 15 Q_TRANS2_15 q15;
- }
-} Q_TRANS2;
-
-typedef struct {
- ULONG NextEntryOffset;
- ULONG FileIndex;
- hyper CreationTime;
- hyper LastAccessTime;
- hyper LastWriteTime;
- hyper ChangeTime;
- hyper EndOfFile;
- hyper AllocationSize;
- ULONG ExtFileAttributes;
- ULONG FileNameLength;
- ULONG EaSize;
- UCHAR ShortNameLength;
- UCHAR Reserved;
- uint8 ShortName[24];
- UCHAR FileName[FileNameLength];
- .align4 2;
-} SMB_FIND_FILE_BOTH_DIRECTORY_INFO;
-
-typedef struct {
- .align2 0;
-} R_TRANS2_D0;
-
-typedef struct {
- .align4 2;
-} R_TRANS2_P0;
-
-typedef struct {
- USHORT Reserved;
-} R_TRANS2_P2;
-
-typedef struct {
- USHORT Sid; /* Search handle */
- USHORT SearchCount; /* Number of entries returned */
- USHORT EndOfSearch; /* Was last entry returned? */
- USHORT EaErrorOffset; /* Offset into EA list if EA error */
- USHORT LastNameOffset; /* Offset into data to file name of last */
- /* entry, if server needs it to resume */
- /* search; else 0 */
- .align4 2;
- SMB_FIND_FILE_BOTH_DIRECTORY_INFO i104[SearchCount];
-} R_TRANS2_FIND_FIRST2_STRUCT;
-
-typedef struct {
- SMB_QUERY_FILE_BASIC_INFO_STRUCT i101;
- .align4 2;
-} R_TRANS2_FILE_BASIC_STRUCT;
-
-typedef struct _R_TRANS2_10 {
- USHORT TotalParameterCount;/* Total parameter bytes being sent */
- USHORT TotalDataCount; /* Total data bytes being sent */
- USHORT Reserved2;
- USHORT ParameterCount; /* Parameter bytes sent this buffer */
- USHORT ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- USHORT ParameterDisplacement; /* Specifies the offset from the start */
- /* of the overall parameter block to */
- /* the parameter bytes that are */
- /* contained in this message */
- USHORT DataCount; /* Data bytes sent this buffer */
- USHORT DataOffset; /* Offset (from header start) to data */
- USHORT DataDisplacement; /* Specifies the offset from the start */
- /* of the overall data block to the */
- /* data bytes that are contained in */
- /* this message. */
- UCHAR SetupCount; /* Count of setup words */
- UCHAR Reserved3; /* Reserved (pad above to word) */
- USHORT Setup[SetupCount]; /* Setup words */
- USHORT ByteCount; /* Count of data bytes */
- .align4 2;
- union pctr[ParameterCount] {
- case 0 R_TRANS2_P0 p0;
- case 2 R_TRANS2_P2 p2;
- case 10 R_TRANS2_FIND_FIRST2_STRUCT r10;
- }
- union dctr[DataCount] {
- case 0 R_TRANS2_D0 d0;
- case 0x24 R_TRANS2_FILE_BASIC_STRUCT r24;
- case 0x14 SMB_QUERY_FS_ATTRIBUTE_INFO_STRUCT r14;
- }
-} R_TRANS2_10;
-
-typedef struct {
- USHORT ByteCount; /* Count of data bytes */
-} R_TRANS2_0;
-
-typedef struct _R_TRANS2 {
- uint8 wcount;
- union ctr[wcount] {
- case 0 R_TRANS2_0 q0;
- case 10 R_TRANS2_10 q10;
- }
-} R_TRANS2;
-
-typedef struct _Q_TRANS_16 {
- USHORT TotalParameterCount; /* Total parameter bytes being sent */
- USHORT TotalDataCount; /* Total data bytes being sent */
- USHORT MaxParameterCount; /* Max parameter bytes to return */
- USHORT MaxDataCount; /* Max data bytes to return */
- UCHAR MaxSetupCount; /* Max setup words to return */
- UCHAR Reserved;
- USHORT Flags; /* Additional information: */
- /* bit 0 - also disconnect TID in TID */
- ULONG Timeout;
- USHORT Reserved2;
- USHORT ParameterCount; /* Parameter bytes sent this buffer */
- USHORT ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- USHORT DataCount; /* Data bytes sent this buffer */
- USHORT DataOffset; /* Offset (from header start) to data */
- UCHAR SetupCount; /* Count of setup words */
- UCHAR Reserved3; /* Reserved (pad above to word) */
- USHORT Setup[SetupCount]; /* Setup words (# = SetupWordCount) */
- USHORT ByteCount; /* Count of data bytes */
- STRING Name; /* Must be NULL */
- .align4 0;
- UCHAR Parameters[ParameterCount];/* Parameter bytes (# = ParameterCount) */
- .align4 0;
- UCHAR Data[DataCount]; /* Data bytes (# = DataCount) */
-
-} Q_TRANS_16;
-
-typedef struct _Q_TRANS {
- uint8 wcount;
- union ctr[wcount] {
- case 16 Q_TRANS_16 q16;
- }
-} Q_TRANS;
-
-typedef struct _R_TRANS_10 {
- USHORT TotalParameterCount;/* Total parameter bytes being sent */
- USHORT TotalDataCount; /* Total data bytes being sent */
- USHORT Reserved2;
- USHORT ParameterCount; /* Parameter bytes sent this buffer */
- USHORT ParameterOffset; /* Offset (from header start) to */
- /* Parameters */
- USHORT ParameterDisplacement; /* Specifies the offset from the start */
- /* of the overall parameter block to */
- /* the parameter bytes that are */
- /* contained in this message */
- USHORT DataCount; /* Data bytes sent this buffer */
- USHORT DataOffset; /* Offset (from header start) to data */
- USHORT DataDisplacement; /* Specifies the offset from the start */
- /* of the overall data block to the */
- /* data bytes that are contained in */
- /* this message. */
- UCHAR SetupCount; /* Count of setup words */
- UCHAR Reserved3; /* Reserved (pad above to word) */
- USHORT Setup[SetupCount]; /* Setup words */
- USHORT ByteCount; /* Count of data bytes */
- .align4 0;
- UCHAR Parameters[ParameterCount];/* Parameter bytes */
- .align4 0;
- UCHAR Data[DataCount]; /* Data bytes */
-} R_TRANS_10;
-
-typedef struct _R_TRANS {
- uint8 wcount;
- union ctr[wcount] {
- case 10 R_TRANS_10 q10;
- }
-} R_TRANS;
-
-typedef struct _Q_NT_CREATE_ANDX_24 {
- ANDX_INFO andx;
- uint8 reserved;
- uint16 name_len;
- ULONG flags;
- ULONG rootfid;
- ULONG access;
- hyper allocsize;
- ULONG attribs;
- ULONG sharing;
- ULONG creat_disp;
- ULONG creat_options;
- ULONG impersonation;
- uint8 sec_flags;
-
- uint16 count;
- uint8 name[name_len];
-
-} Q_NTCREATE_ANDX_24;
-
-typedef struct _Q_NTCREATE_ANDX{
- uint8 wcount;
- union ctr[wcount] {
- case 24 Q_NTCREATE_ANDX_24 q24;
- }
-} Q_NTCREATE_ANDX;
-
-typedef struct {
- ANDX_INFO andx;
- uint8 oplock_level;
- uint16 fid;
- ULONG action;
- TIME create_time;
- TIME access_time;
- TIME write_time;
- TIME change_time;
- ULONG ext_attribs;
- hyper allocsize;
- hyper size;
- uint16 type;
- uint16 state;
- uint8 directory;
-
- uint16 count;
- uint8 none[count];
-
-} R_NTCREATE_ANDX_34;
-
-typedef struct _R_NTCREATE_ANDX{
- uint8 wcount;
- union ctr[wcount] {
- case 34 R_NTCREATE_ANDX_34 q34;
- }
-} R_NTCREATE_ANDX;
-
-typedef struct {
- ULONG smbhdr;
- uint8 com;
- uint8 rcls;
- uint8 reh;
- uint16 err;
- uint8 flg;
- uint16 flg2;
- uint16 reserved;
- uint8 SecuritySignature[8];
- uint16 pad;
- uint16 tid;
- uint16 pid;
- uint16 uid;
- uint16 mid;
-} SMB_HDR;
-
-typedef struct _R_SMB {
- ULONG nbhdr;
- SMB_HDR hdr;
- union ctr[hdr.com] {
- case 4 R_CLOSE r4;
- case 6 R_UNLINK r6;
- case 36 R_LOCKING_ANDX r36;
- case 37 R_TRANS r37;
- case 45 R_OPEN_ANDX r45;
- case 46 R_READ_ANDX r46;
- case 47 R_WRITE_ANDX r47;
- case 50 R_TRANS2 q50;
- case 113 R_TDIS r113;
- case 114 R_NEGPROT r114;
- case 115 R_SESSION_SETUP_ANDX r115;
- case 116 R_ULOGOFF_ANDX r116;
- case 117 R_TCON_ANDX r117;
- case 128 R_DSKATTR r128;
- case 160 R_NTTRANS r160;
- case 162 R_NTCREATE_ANDX r162;
- }
-} R_SMB;
-
-typedef struct _Q_SMB {
- ULONG nbhdr;
- SMB_HDR hdr;
- union ctr[hdr.com] {
- case 4 Q_CLOSE q4;
- case 6 Q_UNLINK q6;
- case 36 Q_LOCKING_ANDX q36;
- case 37 Q_TRANS q37;
- case 45 Q_OPEN_ANDX q45;
- case 46 Q_READ_ANDX q46;
- case 47 Q_WRITE_ANDX q47;
- case 50 Q_TRANS2 q50;
- case 113 Q_TDIS q113;
- case 114 Q_NEGPROT q114;
- case 115 Q_SESSION_SETUP_ANDX q115;
- case 116 Q_ULOGOFF_ANDX q116;
- case 117 Q_TCON_ANDX q117;
- case 128 Q_DSKATTR q128;
- case 160 Q_NTTRANS q160;
- case 162 Q_NTCREATE_ANDX q162;
- }
-} Q_SMB;
-