ipstats.h 3.08 KB
Newer Older
1
/* ipstats.h
2
 * Copyright (C) 2003,2006 Juan Lang
3 4 5 6 7 8 9 10 11 12 13 14 15
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17
 *
18 19
 * This module implements functions that get network-related statistics.
 * It's meant to hide some platform-specificisms.
20 21 22 23
 */
#ifndef WINE_IPSTATS_H_
#define WINE_IPSTATS_H_

24 25
#include <stdarg.h>

26
#include "windef.h"
27
#include "winbase.h"
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#include "iprtrmib.h"

/* Fills in entry's interface stats, using name to find them.
 * Returns ERROR_INVALID_PARAMETER if name or entry is NULL, NO_ERROR otherwise.
 */
DWORD getInterfaceStatsByName(const char *name, PMIB_IFROW entry);

/* Gets ICMP statistics into stats.  Returns ERROR_INVALID_PARAMETER if stats is
 * NULL, NO_ERROR otherwise.
 */
DWORD getICMPStats(MIB_ICMP *stats);

/* Gets IP statistics into stats.  Returns ERROR_INVALID_PARAMETER if stats is
 * NULL, NO_ERROR otherwise.
 */
DWORD getIPStats(PMIB_IPSTATS stats);

/* Gets TCP statistics into stats.  Returns ERROR_INVALID_PARAMETER if stats is
 * NULL, NO_ERROR otherwise.
 */
DWORD getTCPStats(MIB_TCPSTATS *stats);

/* Gets UDP statistics into stats.  Returns ERROR_INVALID_PARAMETER if stats is
 * NULL, NO_ERROR otherwise.
 */
DWORD getUDPStats(MIB_UDPSTATS *stats);

55
/* Returns the number of entries in the route table. */
56 57
DWORD getNumRoutes(void);

58 59
/* Allocates the route table from heap and returns it to you in
 * *ppIpForwardTable.  Returns NO_ERROR on success, something else on failure.
60
 */
61 62
DWORD getRouteTable(PMIB_IPFORWARDTABLE *ppIpForwardTable, HANDLE heap,
 DWORD flags);
63 64 65 66

/* Returns the number of entries in the arp table. */
DWORD getNumArpEntries(void);

67 68
/* Allocates the arp table from heap and returns it to you in *ppIpNetTable.
 * Returns NO_ERROR on success, something else on failure.
69
 */
70
DWORD getArpTable(PMIB_IPNETTABLE *ppIpNetTable, HANDLE heap, DWORD flags);
71 72 73 74

/* Returns the number of entries in the UDP state table. */
DWORD getNumUdpEntries(void);

75 76
/* Allocates the UDP state table from heap and returns it to you in *ppUdpTable.
 * Returns NO_ERROR on success, something else on failure.
77
 */
78
DWORD getUdpTable(PMIB_UDPTABLE *ppUdpTable, HANDLE heap, DWORD flags);
79 80 81 82

/* Returns the number of entries in the TCP state table. */
DWORD getNumTcpEntries(void);

83 84
/* Allocates the TCP state table from heap and returns it to you in *ppTcpTable.
 * Returns NO_ERROR on success, something else on failure.
85
 */
86
DWORD getTcpTable(PMIB_TCPTABLE *ppTcpTable, HANDLE heap, DWORD flags);
87 88

#endif /* ndef WINE_IPSTATS_H_ */