e57b89d184eea2cab906c01c2bfb625f4662d53f
[reactos.git] / base / applications / network / netstat / netstat.h
1
2 /* Maximum string lengths for ASCII ip address and port names */
3 #define HOSTNAMELEN 256
4 #define PORTNAMELEN 256
5 #define ADDRESSLEN HOSTNAMELEN+PORTNAMELEN
6
7 /* command line options */
8 BOOL bNoOptions = FALSE; // print default
9 BOOL bDoShowAllCons = FALSE; // -a
10 BOOL bDoShowProcName = FALSE; // -b
11 BOOL bDoShowEthStats = FALSE; // -e
12 BOOL bDoShowNumbers = FALSE; // -n
13 BOOL bDoShowProtoCons = FALSE; // -p
14 BOOL bDoShowRouteTable = FALSE; // -r
15 BOOL bDoShowProtoStats = FALSE; // -s
16 BOOL bDoDispSeqComp = FALSE; // -v
17 BOOL bLoopOutput = FALSE; // interval
18
19 /* Undocumented extended information structures available only on XP and higher */
20 typedef struct {
21 DWORD dwState; // state of the connection
22 DWORD dwLocalAddr; // address on local computer
23 DWORD dwLocalPort; // port number on local computer
24 DWORD dwRemoteAddr; // address on remote computer
25 DWORD dwRemotePort; // port number on remote computer
26 DWORD dwProcessId;
27 } MIB_TCPEXROW, *PMIB_TCPEXROW;
28
29 typedef struct {
30 DWORD dwNumEntries;
31 MIB_TCPEXROW table;
32 } MIB_TCPEXTABLE, *PMIB_TCPEXTABLE;
33
34 typedef struct {
35 DWORD dwLocalAddr; // address on local computer
36 DWORD dwLocalPort; // port number on local computer
37 DWORD dwProcessId;
38 } MIB_UDPEXROW, *PMIB_UDPEXROW;
39
40 typedef struct {
41 DWORD dwNumEntries;
42 MIB_UDPEXROW table;
43 } MIB_UDPEXTABLE, *PMIB_UDPEXTABLE;
44
45 /* function declarations */
46 BOOL ParseCmdline(int argc, char* argv[]);
47 BOOL DisplayOutput(VOID);
48 DWORD DoFormatMessage(DWORD ErrorCode);
49 VOID ShowIpStatistics(VOID);
50 VOID ShowIcmpStatistics(VOID);
51 VOID ShowTcpStatistics(VOID);
52 VOID ShowUdpStatistics(VOID);
53 VOID ShowEthernetStatistics(VOID);
54 VOID ShowTcpTable(VOID);
55 VOID ShowUdpTable(VOID);
56 PCHAR GetPortName(UINT Port, PCSTR Proto, CHAR Name[PORTNAMELEN], INT NameLen);
57 PCHAR GetIpHostName(BOOL local, UINT ipaddr, CHAR name[HOSTNAMELEN], int namelen);
58 VOID Usage(VOID);