xref: /nrf52832-nimble/rt-thread/components/drivers/usb/usbdevice/class/ndis.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  */
9*10465441SEvalZero /*
10*10465441SEvalZero  * ndis.h
11*10465441SEvalZero  *
12*10465441SEvalZero  * Modified by Colin O'Flynn <[email protected]>
13*10465441SEvalZero  * ntddndis.h modified by Benedikt Spranger <[email protected]>
14*10465441SEvalZero  *
15*10465441SEvalZero  * Thanks to the cygwin development team,
16*10465441SEvalZero  * espacially to Casper S. Hornstrup <[email protected]>
17*10465441SEvalZero  *
18*10465441SEvalZero  * THIS SOFTWARE IS NOT COPYRIGHTED
19*10465441SEvalZero  *
20*10465441SEvalZero  * This source code is offered for use in the public domain. You may
21*10465441SEvalZero  * use, modify or distribute it freely.
22*10465441SEvalZero  *
23*10465441SEvalZero  * This code is distributed in the hope that it will be useful but
24*10465441SEvalZero  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
25*10465441SEvalZero  * DISCLAIMED. This includes but is not limited to warranties of
26*10465441SEvalZero  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
27*10465441SEvalZero  *
28*10465441SEvalZero  */
29*10465441SEvalZero 
30*10465441SEvalZero #ifndef  __NDIS_H__
31*10465441SEvalZero #define  __NDIS_H__
32*10465441SEvalZero 
33*10465441SEvalZero #define NDIS_STATUS_MULTICAST_FULL	      0xC0010009
34*10465441SEvalZero #define NDIS_STATUS_MULTICAST_EXISTS      0xC001000A
35*10465441SEvalZero #define NDIS_STATUS_MULTICAST_NOT_FOUND   0xC001000B
36*10465441SEvalZero 
37*10465441SEvalZero /* from drivers/net/sk98lin/h/skgepnmi.h */
38*10465441SEvalZero #define OID_PNP_CAPABILITIES                    0xFD010100
39*10465441SEvalZero #define OID_PNP_SET_POWER                       0xFD010101
40*10465441SEvalZero #define OID_PNP_QUERY_POWER                     0xFD010102
41*10465441SEvalZero #define OID_PNP_ADD_WAKE_UP_PATTERN             0xFD010103
42*10465441SEvalZero #define OID_PNP_REMOVE_WAKE_UP_PATTERN          0xFD010104
43*10465441SEvalZero #define OID_PNP_ENABLE_WAKE_UP                  0xFD010106
44*10465441SEvalZero 
45*10465441SEvalZero enum NDIS_DEVICE_POWER_STATE
46*10465441SEvalZero {
47*10465441SEvalZero 	NdisDeviceStateUnspecified = 0,
48*10465441SEvalZero 	NdisDeviceStateD0,
49*10465441SEvalZero 	NdisDeviceStateD1,
50*10465441SEvalZero 	NdisDeviceStateD2,
51*10465441SEvalZero 	NdisDeviceStateD3,
52*10465441SEvalZero 	NdisDeviceStateMaximum
53*10465441SEvalZero };
54*10465441SEvalZero 
55*10465441SEvalZero struct NDIS_PM_WAKE_UP_CAPABILITIES
56*10465441SEvalZero {
57*10465441SEvalZero 	enum NDIS_DEVICE_POWER_STATE  MinMagicPacketWakeUp;
58*10465441SEvalZero 	enum NDIS_DEVICE_POWER_STATE  MinPatternWakeUp;
59*10465441SEvalZero 	enum NDIS_DEVICE_POWER_STATE  MinLinkChangeWakeUp;
60*10465441SEvalZero };
61*10465441SEvalZero 
62*10465441SEvalZero /* NDIS_PNP_CAPABILITIES.Flags constants */
63*10465441SEvalZero #define NDIS_DEVICE_WAKE_UP_ENABLE                0x00000001
64*10465441SEvalZero #define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE  0x00000002
65*10465441SEvalZero #define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE   0x00000004
66*10465441SEvalZero 
67*10465441SEvalZero /* Required Object IDs (OIDs) */
68*10465441SEvalZero #define OID_GEN_SUPPORTED_LIST            0x00010101
69*10465441SEvalZero #define OID_GEN_HARDWARE_STATUS           0x00010102
70*10465441SEvalZero #define OID_GEN_MEDIA_SUPPORTED           0x00010103
71*10465441SEvalZero #define OID_GEN_MEDIA_IN_USE              0x00010104
72*10465441SEvalZero #define OID_GEN_MAXIMUM_LOOKAHEAD         0x00010105
73*10465441SEvalZero #define OID_GEN_MAXIMUM_FRAME_SIZE        0x00010106
74*10465441SEvalZero #define OID_GEN_LINK_SPEED                0x00010107
75*10465441SEvalZero #define OID_GEN_TRANSMIT_BUFFER_SPACE     0x00010108
76*10465441SEvalZero #define OID_GEN_RECEIVE_BUFFER_SPACE      0x00010109
77*10465441SEvalZero #define OID_GEN_TRANSMIT_BLOCK_SIZE       0x0001010A
78*10465441SEvalZero #define OID_GEN_RECEIVE_BLOCK_SIZE        0x0001010B
79*10465441SEvalZero #define OID_GEN_VENDOR_ID                 0x0001010C
80*10465441SEvalZero #define OID_GEN_VENDOR_DESCRIPTION        0x0001010D
81*10465441SEvalZero #define OID_GEN_CURRENT_PACKET_FILTER     0x0001010E
82*10465441SEvalZero #define OID_GEN_CURRENT_LOOKAHEAD         0x0001010F
83*10465441SEvalZero #define OID_GEN_DRIVER_VERSION            0x00010110
84*10465441SEvalZero #define OID_GEN_MAXIMUM_TOTAL_SIZE        0x00010111
85*10465441SEvalZero #define OID_GEN_PROTOCOL_OPTIONS          0x00010112
86*10465441SEvalZero #define OID_GEN_MAC_OPTIONS               0x00010113
87*10465441SEvalZero #define OID_GEN_MEDIA_CONNECT_STATUS      0x00010114
88*10465441SEvalZero #define OID_GEN_MAXIMUM_SEND_PACKETS      0x00010115
89*10465441SEvalZero #define OID_GEN_VENDOR_DRIVER_VERSION     0x00010116
90*10465441SEvalZero #define OID_GEN_SUPPORTED_GUIDS           0x00010117
91*10465441SEvalZero #define OID_GEN_NETWORK_LAYER_ADDRESSES   0x00010118
92*10465441SEvalZero #define OID_GEN_TRANSPORT_HEADER_OFFSET   0x00010119
93*10465441SEvalZero #define OID_GEN_MACHINE_NAME              0x0001021A
94*10465441SEvalZero #define OID_GEN_RNDIS_CONFIG_PARAMETER    0x0001021B
95*10465441SEvalZero #define OID_GEN_VLAN_ID                   0x0001021C
96*10465441SEvalZero 
97*10465441SEvalZero /* Optional OIDs */
98*10465441SEvalZero #define OID_GEN_MEDIA_CAPABILITIES        0x00010201
99*10465441SEvalZero #define OID_GEN_PHYSICAL_MEDIUM           0x00010202
100*10465441SEvalZero 
101*10465441SEvalZero /* Required statistics OIDs */
102*10465441SEvalZero #define OID_GEN_XMIT_OK                   0x00020101
103*10465441SEvalZero #define OID_GEN_RCV_OK                    0x00020102
104*10465441SEvalZero #define OID_GEN_XMIT_ERROR                0x00020103
105*10465441SEvalZero #define OID_GEN_RCV_ERROR                 0x00020104
106*10465441SEvalZero #define OID_GEN_RCV_NO_BUFFER             0x00020105
107*10465441SEvalZero 
108*10465441SEvalZero /* Optional statistics OIDs */
109*10465441SEvalZero #define OID_GEN_DIRECTED_BYTES_XMIT       0x00020201
110*10465441SEvalZero #define OID_GEN_DIRECTED_FRAMES_XMIT      0x00020202
111*10465441SEvalZero #define OID_GEN_MULTICAST_BYTES_XMIT      0x00020203
112*10465441SEvalZero #define OID_GEN_MULTICAST_FRAMES_XMIT     0x00020204
113*10465441SEvalZero #define OID_GEN_BROADCAST_BYTES_XMIT      0x00020205
114*10465441SEvalZero #define OID_GEN_BROADCAST_FRAMES_XMIT     0x00020206
115*10465441SEvalZero #define OID_GEN_DIRECTED_BYTES_RCV        0x00020207
116*10465441SEvalZero #define OID_GEN_DIRECTED_FRAMES_RCV       0x00020208
117*10465441SEvalZero #define OID_GEN_MULTICAST_BYTES_RCV       0x00020209
118*10465441SEvalZero #define OID_GEN_MULTICAST_FRAMES_RCV      0x0002020A
119*10465441SEvalZero #define OID_GEN_BROADCAST_BYTES_RCV       0x0002020B
120*10465441SEvalZero #define OID_GEN_BROADCAST_FRAMES_RCV      0x0002020C
121*10465441SEvalZero #define OID_GEN_RCV_CRC_ERROR             0x0002020D
122*10465441SEvalZero #define OID_GEN_TRANSMIT_QUEUE_LENGTH     0x0002020E
123*10465441SEvalZero #define OID_GEN_GET_TIME_CAPS             0x0002020F
124*10465441SEvalZero #define OID_GEN_GET_NETCARD_TIME          0x00020210
125*10465441SEvalZero #define OID_GEN_NETCARD_LOAD              0x00020211
126*10465441SEvalZero #define OID_GEN_DEVICE_PROFILE            0x00020212
127*10465441SEvalZero #define OID_GEN_INIT_TIME_MS              0x00020213
128*10465441SEvalZero #define OID_GEN_RESET_COUNTS              0x00020214
129*10465441SEvalZero #define OID_GEN_MEDIA_SENSE_COUNTS        0x00020215
130*10465441SEvalZero #define OID_GEN_FRIENDLY_NAME             0x00020216
131*10465441SEvalZero #define OID_GEN_MINIPORT_INFO             0x00020217
132*10465441SEvalZero #define OID_GEN_RESET_VERIFY_PARAMETERS   0x00020218
133*10465441SEvalZero 
134*10465441SEvalZero /* IEEE 802.3 (Ethernet) OIDs */
135*10465441SEvalZero #define NDIS_802_3_MAC_OPTION_PRIORITY    0x00000001
136*10465441SEvalZero 
137*10465441SEvalZero #define OID_802_3_PERMANENT_ADDRESS       0x01010101
138*10465441SEvalZero #define OID_802_3_CURRENT_ADDRESS         0x01010102
139*10465441SEvalZero #define OID_802_3_MULTICAST_LIST          0x01010103
140*10465441SEvalZero #define OID_802_3_MAXIMUM_LIST_SIZE       0x01010104
141*10465441SEvalZero #define OID_802_3_MAC_OPTIONS             0x01010105
142*10465441SEvalZero #define OID_802_3_RCV_ERROR_ALIGNMENT     0x01020101
143*10465441SEvalZero #define OID_802_3_XMIT_ONE_COLLISION      0x01020102
144*10465441SEvalZero #define OID_802_3_XMIT_MORE_COLLISIONS    0x01020103
145*10465441SEvalZero #define OID_802_3_XMIT_DEFERRED           0x01020201
146*10465441SEvalZero #define OID_802_3_XMIT_MAX_COLLISIONS     0x01020202
147*10465441SEvalZero #define OID_802_3_RCV_OVERRUN             0x01020203
148*10465441SEvalZero #define OID_802_3_XMIT_UNDERRUN           0x01020204
149*10465441SEvalZero #define OID_802_3_XMIT_HEARTBEAT_FAILURE  0x01020205
150*10465441SEvalZero #define OID_802_3_XMIT_TIMES_CRS_LOST     0x01020206
151*10465441SEvalZero #define OID_802_3_XMIT_LATE_COLLISIONS    0x01020207
152*10465441SEvalZero 
153*10465441SEvalZero /* Wireless LAN OIDs */
154*10465441SEvalZero #define OID_802_11_BSSID                  0x0D010101 /* Q  S     */
155*10465441SEvalZero #define OID_802_11_SSID                   0x0D010102 /* Q  S     */
156*10465441SEvalZero #define OID_802_11_NETWORK_TYPE_IN_USE    0x0D010204 /* Q  S     */
157*10465441SEvalZero #define OID_802_11_RSSI                   0x0D010206 /* Q      I */
158*10465441SEvalZero #define OID_802_11_BSSID_LIST             0x0D010217 /* Q        */
159*10465441SEvalZero #define OID_802_11_BSSID_LIST_SCAN        0x0D01011A /*    S     */
160*10465441SEvalZero #define OID_802_11_INFRASTRUCTURE_MODE    0x0D010108 /* Q  S     */
161*10465441SEvalZero #define OID_802_11_SUPPORTED_RATES        0x0D01020E /* Q        */
162*10465441SEvalZero #define OID_802_11_CONFIGURATION          0x0D010211 /* Q  S     */
163*10465441SEvalZero #define OID_802_11_ADD_WEP                0x0D010113 /*    S     */
164*10465441SEvalZero #define OID_802_11_WEP_STATUS             0x0D01011B /* Q  S     */
165*10465441SEvalZero #define OID_802_11_REMOVE_WEP             0x0D010114 /*    S     */
166*10465441SEvalZero #define OID_802_11_DISASSOCIATE           0x0D010115 /*    S     */
167*10465441SEvalZero #define OID_802_11_AUTHENTICATION_MODE    0x0D010118 /* Q  S     */
168*10465441SEvalZero #define OID_802_11_RELOAD_DEFAULTS        0x0D01011C /*    S     */
169*10465441SEvalZero 
170*10465441SEvalZero /* OID_GEN_MINIPORT_INFO constants */
171*10465441SEvalZero #define NDIS_MINIPORT_BUS_MASTER                      0x00000001
172*10465441SEvalZero #define NDIS_MINIPORT_WDM_DRIVER                      0x00000002
173*10465441SEvalZero #define NDIS_MINIPORT_SG_LIST                         0x00000004
174*10465441SEvalZero #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY            0x00000008
175*10465441SEvalZero #define NDIS_MINIPORT_INDICATES_PACKETS               0x00000010
176*10465441SEvalZero #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE             0x00000020
177*10465441SEvalZero #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE            0x00000040
178*10465441SEvalZero #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS        0x00000080
179*10465441SEvalZero #define NDIS_MINIPORT_INTERMEDIATE_DRIVER             0x00000100
180*10465441SEvalZero #define NDIS_MINIPORT_IS_NDIS_5                       0x00000200
181*10465441SEvalZero #define NDIS_MINIPORT_IS_CO                           0x00000400
182*10465441SEvalZero #define NDIS_MINIPORT_DESERIALIZE                     0x00000800
183*10465441SEvalZero #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING          0x00001000
184*10465441SEvalZero #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE            0x00002000
185*10465441SEvalZero #define NDIS_MINIPORT_NETBOOT_CARD                    0x00004000
186*10465441SEvalZero #define NDIS_MINIPORT_PM_SUPPORTED                    0x00008000
187*10465441SEvalZero #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE  0x00010000
188*10465441SEvalZero #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS           0x00020000
189*10465441SEvalZero #define NDIS_MINIPORT_HIDDEN                          0x00040000
190*10465441SEvalZero #define NDIS_MINIPORT_SWENUM                          0x00080000
191*10465441SEvalZero #define NDIS_MINIPORT_SURPRISE_REMOVE_OK              0x00100000
192*10465441SEvalZero #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND              0x00200000
193*10465441SEvalZero #define NDIS_MINIPORT_HARDWARE_DEVICE                 0x00400000
194*10465441SEvalZero #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS    0x00800000
195*10465441SEvalZero #define NDIS_MINIPORT_64BITS_DMA                      0x01000000
196*10465441SEvalZero 
197*10465441SEvalZero #define NDIS_MEDIUM_802_3		 0x00000000
198*10465441SEvalZero #define NDIS_MEDIUM_802_5		 0x00000001
199*10465441SEvalZero #define NDIS_MEDIUM_FDDI		 0x00000002
200*10465441SEvalZero #define NDIS_MEDIUM_WAN			 0x00000003
201*10465441SEvalZero #define NDIS_MEDIUM_LOCAL_TALK	 0x00000004
202*10465441SEvalZero #define NDIS_MEDIUM_DIX			 0x00000005
203*10465441SEvalZero #define NDIS_MEDIUM_ARCENT_RAW   0x00000006
204*10465441SEvalZero #define NDIS_MEDIUM_ARCENT_878_2 0x00000007
205*10465441SEvalZero #define NDIS_MEDIUM_ATM			 0x00000008
206*10465441SEvalZero #define NDIS_MEDIUM_WIRELESS_LAN 0x00000009
207*10465441SEvalZero #define NDIS_MEDIUM_IRDA		 0x0000000A
208*10465441SEvalZero #define NDIS_MEDIUM_BPC			 0x0000000B
209*10465441SEvalZero #define NDIS_MEDIUM_CO_WAN		 0x0000000C
210*10465441SEvalZero #define NDIS_MEDIUM_1394		 0x0000000D
211*10465441SEvalZero 
212*10465441SEvalZero #define NDIS_PACKET_TYPE_DIRECTED	    0x00000001
213*10465441SEvalZero #define NDIS_PACKET_TYPE_MULTICAST	    0x00000002
214*10465441SEvalZero #define NDIS_PACKET_TYPE_ALL_MULTICAST	0x00000004
215*10465441SEvalZero #define NDIS_PACKET_TYPE_BROADCAST	    0x00000008
216*10465441SEvalZero #define NDIS_PACKET_TYPE_SOURCE_ROUTING	0x00000010
217*10465441SEvalZero #define NDIS_PACKET_TYPE_PROMISCUOUS	0x00000020
218*10465441SEvalZero #define NDIS_PACKET_TYPE_SMT		    0x00000040
219*10465441SEvalZero #define NDIS_PACKET_TYPE_ALL_LOCAL	    0x00000080
220*10465441SEvalZero #define NDIS_PACKET_TYPE_GROUP		    0x00000100
221*10465441SEvalZero #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL	0x00000200
222*10465441SEvalZero #define NDIS_PACKET_TYPE_FUNCTIONAL	    0x00000400
223*10465441SEvalZero #define NDIS_PACKET_TYPE_MAC_FRAME	    0x00000800
224*10465441SEvalZero 
225*10465441SEvalZero #define NDIS_MEDIA_STATE_CONNECTED	    0x00000000
226*10465441SEvalZero #define NDIS_MEDIA_STATE_DISCONNECTED	0x00000001
227*10465441SEvalZero 
228*10465441SEvalZero #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA     0x00000001
229*10465441SEvalZero #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED      0x00000002
230*10465441SEvalZero #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND      0x00000004
231*10465441SEvalZero #define NDIS_MAC_OPTION_NO_LOOPBACK             0x00000008
232*10465441SEvalZero #define NDIS_MAC_OPTION_FULL_DUPLEX             0x00000010
233*10465441SEvalZero #define NDIS_MAC_OPTION_EOTX_INDICATION         0x00000020
234*10465441SEvalZero #define NDIS_MAC_OPTION_8021P_PRIORITY          0x00000040
235*10465441SEvalZero #define NDIS_MAC_OPTION_RESERVED                0x80000000
236*10465441SEvalZero 
237*10465441SEvalZero #endif /* __NDIS_H__ */
238