summaryrefslogtreecommitdiffstats
path: root/private/ntos/tdi/isn/rip/driver.h
blob: a75b65ba49ab9439686c9d1f5ba8a0e116b367e3 (plain) (blame)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/*++

Copyright (c) 1993  Microsoft Corporation

Module Name:

    driver.h

Abstract:


Environment:

    kernel & User mode

Notes:


Revision History:

--*/


//
// Define the various device type values.  Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//

#define FILE_DEVICE_IPXROUTER	0x00008000



//
// Macro definition for defining IOCTL and FSCTL function control codes.  Note
// that function codes 0-2047 are reserved for Microsoft Corporation, and
// 2048-4095 are reserved for customers.
//

#define IPXROUTER_IOCTL_INDEX	(ULONG)0x00000800


//
// Define our own private IOCTLs
//

#define IOCTL_IPXROUTER_SNAPROUTES		CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+1,\
                                                         METHOD_BUFFERED,     \
							 FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_GETNEXTROUTE		CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+2,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_CHECKNETNUMBER		CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+3,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_SHOWNICINFO		CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+4,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_ZERONICSTATISTICS	CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+5,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_SHOWMEMSTATISTICS	CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+6,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_GETWANINNACTIVITY	CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+7,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_SETWANGLOBALADDRESS	CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+8,\
                                                         METHOD_BUFFERED,     \
							 FILE_ANY_ACCESS)

#define IOCTL_IPXROUTER_DELETEWANGLOBALADDRESS	CTL_CODE(FILE_DEVICE_IPXROUTER,	\
							 IPXROUTER_IOCTL_INDEX+9,\
                                                         METHOD_BUFFERED,     \
                                                         FILE_ANY_ACCESS)


//*** Nic Info Ioctl Data ***

#define     SHOW_NIC_LAN	    0
#define     SHOW_NIC_WAN	    1

#define     SHOW_NIC_CLOSED	    0
#define     SHOW_NIC_CLOSING	    1
#define     SHOW_NIC_ACTIVE	    2
#define     SHOW_NIC_PENDING_OPEN   3

typedef struct _SHOW_NIC_INFO {

    USHORT	NicId;
    USHORT	DeviceType;
    USHORT	NicState;
    UCHAR	Network[4];
    UCHAR	Node[6];
    USHORT	TickCount;
    ULONG	StatBadReceived;
    ULONG	StatRipReceived;
    ULONG	StatRipSent;
    ULONG	StatRoutedReceived;
    ULONG	StatRoutedSent;
    ULONG	StatType20Received;
    ULONG	StatType20Sent;
    } SHOW_NIC_INFO, *PSHOW_NIC_INFO;

//*** Memory Statistics Data ***

typedef struct _SHOW_MEM_STAT {

    ULONG	PeakPktAllocCount;
    ULONG	CurrentPktAllocCount;
    ULONG	CurrentPktPoolCount;
    ULONG	PacketSize;
    } SHOW_MEM_STAT, *PSHOW_MEM_STAT;

//*** Wan Innactivity Data ***
// For the first call the NicId is set to 0xffff. The router will associate
// the remote node with a valid nic id, which will be used in subsequent calls.

typedef struct	_GET_WAN_INNACTIVITY {

    USHORT	NicId;
    UCHAR	RemoteNode[6];
    ULONG	WanInnactivityCount;
    } GET_WAN_INNACTIVITY, *PGET_WAN_INNACTIVITY;

//*** Wan Global Address Data ***

#define ERROR_IPXCP_NETWORK_NUMBER_IN_USE	 1
#define ERROR_IPXCP_MEMORY_ALLOCATION_FAILURE	 2

typedef struct	_SET_WAN_GLOBAL_ADDRESS {

    UCHAR	WanGlobalNetwork[4];
    ULONG	ErrorCode;
    } SET_WAN_GLOBAL_ADDRESS, *PSET_WAN_GLOBAL_ADDRESS;