2 * Copyright 2009 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * 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
24 /* #include <pciprop.h> */
34 #define _NDIS_CONTROL_CODE(request, method) \
35 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
37 #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT)
38 #define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1, METHOD_OUT_DIRECT)
39 #define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2, METHOD_BUFFERED)
40 #define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3, METHOD_OUT_DIRECT)
41 #define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4, METHOD_BUFFERED)
42 #define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5, METHOD_BUFFERED)
43 #define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7, METHOD_OUT_DIRECT)
44 #define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8, METHOD_BUFFERED)
46 #define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE(0x09, METHOD_BUFFERED)
47 #define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE(0x0a, METHOD_BUFFERED)
48 #define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE(0x0b, METHOD_BUFFERED)
49 #define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE(0x0c, METHOD_BUFFERED)
50 #define IOCTL_NDIS_RESERVED5 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0d, METHOD_BUFFERED, FILE_ANY_ACCESS)
51 #define IOCTL_NDIS_RESERVED6 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0e, METHOD_BUFFERED, FILE_WRITE_ACCESS)
52 #define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0x0f, METHOD_OUT_DIRECT)
53 #define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE(0x10, METHOD_BUFFERED)
54 #define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE(0x11, METHOD_BUFFERED)
55 #define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE(0x12, METHOD_BUFFERED)
56 #define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE(0x13, METHOD_BUFFERED)
57 #define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE(0x14, METHOD_BUFFERED)
58 #define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE(0x15, METHOD_BUFFERED)
60 #define OID_GEN_SUPPORTED_LIST 0x00010101
61 #define OID_GEN_HARDWARE_STATUS 0x00010102
62 #define OID_GEN_MEDIA_SUPPORTED 0x00010103
63 #define OID_GEN_MEDIA_IN_USE 0x00010104
64 #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
65 #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
66 #define OID_GEN_LINK_SPEED 0x00010107
67 #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
68 #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
69 #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010a
70 #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010b
71 #define OID_GEN_VENDOR_ID 0x0001010c
72 #define OID_GEN_VENDOR_DESCRIPTION 0x0001010d
73 #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010e
74 #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010f
75 #define OID_GEN_DRIVER_VERSION 0x00010110
76 #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
77 #define OID_GEN_PROTOCOL_OPTIONS 0x00010112
78 #define OID_GEN_MAC_OPTIONS 0x00010113
79 #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
80 #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
82 #define OID_802_3_PERMANENT_ADDRESS 0x01010101
83 #define OID_802_3_CURRENT_ADDRESS 0x01010102
84 #define OID_802_3_MULTICAST_LIST 0x01010103
85 #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
86 #define OID_802_3_MAC_OPTIONS 0x01010105
87 #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
88 #define OID_802_3_XMIT_ONE_COLLISION 0x01020102
89 #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
90 #define OID_802_3_XMIT_DEFERRED 0x01020201
91 #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
92 #define OID_802_3_RCV_OVERRUN 0x01020203
93 #define OID_802_3_XMIT_UNDERRUN 0x01020204
94 #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
95 #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
96 #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
97 #define OID_802_3_ADD_MULTICAST_ADDRESS 0x01010208
98 #define OID_802_3_DELETE_MULTICAST_ADDRESS 0x01010209
100 #define OID_802_5_PERMANENT_ADDRESS 0x02010101
101 #define OID_802_5_CURRENT_ADDRESS 0x02010102
102 #define OID_802_5_CURRENT_FUNCTIONAL 0x02010103
103 #define OID_802_5_CURRENT_GROUP 0x02010104
104 #define OID_802_5_LAST_OPEN_STATUS 0x02010105
105 #define OID_802_5_CURRENT_RING_STATUS 0x02010106
106 #define OID_802_5_CURRENT_RING_STATE 0x02010107
107 #define OID_802_5_LINE_ERRORS 0x02020101
108 #define OID_802_5_LOST_FRAMES 0x02020102
109 #define OID_802_5_BURST_ERRORS 0x02020201
110 #define OID_802_5_AC_ERRORS 0x02020202
111 #define OID_802_5_ABORT_DELIMETERS 0x02020203
112 #define OID_802_5_FRAME_COPIED_ERRORS 0x02020204
113 #define OID_802_5_FREQUENCY_ERRORS 0x02020205
114 #define OID_802_5_TOKEN_ERRORS 0x02020206
115 #define OID_802_5_INTERNAL_ERRORS 0x02020207
117 #define OID_802_11_BSSID 0x0d010101
118 #define OID_802_11_SSID 0x0d010102
119 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203
120 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204
121 #define OID_802_11_TX_POWER_LEVEL 0x0d010205
122 #define OID_802_11_RSSI 0x0d010206
123 #define OID_802_11_RSSI_TRIGGER 0x0d010207
124 #define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108
125 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209
126 #define OID_802_11_RTS_THRESHOLD 0x0d01020a
127 #define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b
128 #define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c
129 #define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d
130 #define OID_802_11_SUPPORTED_RATES 0x0d01020e
131 #define OID_802_11_DESIRED_RATES 0x0d010210
132 #define OID_802_11_CONFIGURATION 0x0d010211
133 #define OID_802_11_STATISTICS 0x0d020212
134 #define OID_802_11_ADD_WEP 0x0d010113
135 #define OID_802_11_REMOVE_WEP 0x0d010114
136 #define OID_802_11_DISASSOCIATE 0x0d010115
137 #define OID_802_11_POWER_MODE 0x0d010216
138 #define OID_802_11_BSSID_LIST 0x0d010217
139 #define OID_802_11_AUTHENTICATION_MODE 0x0d010118
140 #define OID_802_11_PRIVACY_FILTER 0x0d010119
141 #define OID_802_11_BSSID_LIST_SCAN 0x0d01011a
142 #define OID_802_11_WEP_STATUS 0x0d01011b
143 #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
144 #define OID_802_11_RELOAD_DEFAULTS 0x0d01011c
145 #define OID_802_11_ADD_KEY 0x0d01011d
146 #define OID_802_11_REMOVE_KEY 0x0d01011e
147 #define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f
148 #define OID_802_11_TEST 0x0d010120
149 #define OID_802_11_MEDIA_STREAM_MODE 0x0d010121
150 #define OID_802_11_CAPABILITY 0x0d010122
151 #define OID_802_11_PMKID 0x0d010123
152 #define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124
153 #define OID_802_11_RADIO_STATUS 0x0d010125
155 #define NDIS_802_11_LENGTH_SSID 32
156 #define NDIS_802_11_LENGTH_RATES 8
157 #define NDIS_802_11_LENGTH_RATES_EX 16
159 typedef LONG NDIS_802_11_RSSI
;
161 typedef struct _NDIS_802_11_CONFIGURATION_FH
{
166 } NDIS_802_11_CONFIGURATION_FH
, *PNDIS_802_11_CONFIGURATION_FH
;
168 typedef struct _NDIS_802_11_CONFIGURATION
{
173 NDIS_802_11_CONFIGURATION_FH FHConfig
;
174 } NDIS_802_11_CONFIGURATION
, *PNDIS_802_11_CONFIGURATION
;
176 typedef UCHAR NDIS_802_11_MAC_ADDRESS
[6];
178 typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE
{
180 Ndis802_11Infrastructure
,
181 Ndis802_11AutoUnknown
,
182 Ndis802_11InfrastructureMax
183 } NDIS_802_11_NETWORK_INFRASTRUCTURE
, *PNDIS_802_11_NETWORK_INFRASTRUCTURE
;
185 typedef enum _NDIS_802_11_NETWORK_TYPE
{
191 Ndis802_11NetworkTypeMax
192 } NDIS_802_11_NETWORK_TYPE
, *PNDIS_802_11_NETWORK_TYPE
;
194 typedef UCHAR NDIS_802_11_RATES
[NDIS_802_11_LENGTH_RATES
];
195 typedef UCHAR NDIS_802_11_RATES_EX
[NDIS_802_11_LENGTH_RATES_EX
];
197 typedef struct _NDIS_802_11_SSID
{
199 UCHAR Ssid
[NDIS_802_11_LENGTH_SSID
];
200 } NDIS_802_11_SSID
, *PNDIS_802_11_SSID
;
202 typedef struct _NDIS_WLAN_BSSID
{
204 NDIS_802_11_MAC_ADDRESS MacAddress
;
206 NDIS_802_11_SSID Ssid
;
208 NDIS_802_11_RSSI Rssi
;
209 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse
;
210 NDIS_802_11_CONFIGURATION Configuration
;
211 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode
;
212 NDIS_802_11_RATES SupportedRates
;
213 } NDIS_WLAN_BSSID
, *PNDIS_WLAN_BSSID
;
215 typedef struct _NDIS_802_11_BSSID_LIST
{
217 NDIS_WLAN_BSSID Bssid
[1];
218 } NDIS_802_11_BSSID_LIST
, *PNDIS_802_11_BSSID_LIST
;
221 typedef int NDIS_STATUS
, *PNDIS_STATUS
;
224 typedef enum _NDIS_MEDIUM
233 NdisMediumArcnet878_2
,
235 NdisMediumWirelessWan
,
240 NdisMediumInfiniBand
,
242 NdisMediumNative802_11
,
247 } NDIS_MEDIUM
, *PNDIS_MEDIUM
;
249 typedef enum _NDIS_PHYSICAL_MEDIUM
251 NdisPhysicalMediumUnspecified
,
252 NdisPhysicalMediumWirelessLan
,
253 NdisPhysicalMediumCableModem
,
254 NdisPhysicalMediumPhoneLine
,
255 NdisPhysicalMediumPowerLine
,
256 NdisPhysicalMediumDSL
,
257 NdisPhysicalMediumFibreChannel
,
258 NdisPhysicalMedium1394
,
259 NdisPhysicalMediumWirelessWan
,
260 NdisPhysicalMediumNative802_11
,
261 NdisPhysicalMediumBluetooth
,
262 NdisPhysicalMediumInfiniband
,
263 NdisPhysicalMediumWiMax
,
264 NdisPhysicalMediumUWB
,
265 NdisPhysicalMedium802_3
,
266 NdisPhysicalMedium802_5
,
267 NdisPhysicalMediumIrda
,
268 NdisPhysicalMediumWiredWAN
,
269 NdisPhysicalMediumWiredCoWan
,
270 NdisPhysicalMediumOther
,
271 NdisPhysicalMediumMax
272 } NDIS_PHYSICAL_MEDIUM
, *PNDIS_PHYSICAL_MEDIUM
;
278 #endif /* _NTDDNDIS_ */