blob: 4d6abaa668430d73bc222ab9e329954cf1888e82 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef int64_t QWORD;
#include "nu_defines.h"
#define SMB_MAXREQUESTS 16
typedef struct {
BYTE netbios_command;
BYTE netbios_flags;
WORD netbios_size;
DWORD Protocol; /* Protocol identifier 0xFF,"SMB" */
BYTE Command; /* Command Code, look below */
BYTE Status[4];
BYTE Flags;
WORD Flags2;
WORD Pad[6]; /* Ensure 12 bytes len */
WORD TreeID;
WORD ProcessID;
WORD UserID;
WORD MultiplexID;
} SMB_HEADER;
typedef struct {
BYTE WordCount;
WORD Buffer[0];
} SMB_PARAMS;
typedef struct {
WORD ByteCount;
BYTE Buffer[0];
} SMB_BYTES;
typedef struct {
SMB_PARAMS *params;
SMB_BYTES *bytes;
} SMB_DATA;
typedef struct {
BYTE cmd;
SMB_COMMAND_FLAG flags;
SMB_STATUS (*handler)(SMB_HEADER *header, SMB_DATA *data);
} SMB_COMMAND_HANDLER;
|