1 | /*
|
---|
2 | * Copyright 2009 Jacek Caban for CodeWeavers
|
---|
3 | *
|
---|
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.
|
---|
8 | *
|
---|
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.
|
---|
13 | *
|
---|
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
|
---|
17 | */
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | #ifndef _NTDDNDIS_
|
---|
29 | #define _NTDDNDIS_
|
---|
30 |
|
---|
31 | #ifdef __cplusplus
|
---|
32 | extern "C" {
|
---|
33 | #endif
|
---|
34 |
|
---|
35 | /* #include <ifdef.h>*/
|
---|
36 | /* #include <devpkey.h> */
|
---|
37 | /* #include <pciprop.h> */
|
---|
38 |
|
---|
39 | #define _NDIS_CONTROL_CODE(request, method) \
|
---|
40 | CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
|
---|
41 |
|
---|
42 | #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT)
|
---|
43 | #define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1, METHOD_OUT_DIRECT)
|
---|
44 | #define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2, METHOD_BUFFERED)
|
---|
45 | #define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3, METHOD_OUT_DIRECT)
|
---|
46 | #define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4, METHOD_BUFFERED)
|
---|
47 | #define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5, METHOD_BUFFERED)
|
---|
48 | #define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7, METHOD_OUT_DIRECT)
|
---|
49 | #define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8, METHOD_BUFFERED)
|
---|
50 |
|
---|
51 | #define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE(0x09, METHOD_BUFFERED)
|
---|
52 | #define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE(0x0a, METHOD_BUFFERED)
|
---|
53 | #define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE(0x0b, METHOD_BUFFERED)
|
---|
54 | #define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE(0x0c, METHOD_BUFFERED)
|
---|
55 | #define IOCTL_NDIS_RESERVED5 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0d, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
---|
56 | #define IOCTL_NDIS_RESERVED6 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0e, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
---|
57 | #define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0x0f, METHOD_OUT_DIRECT)
|
---|
58 | #define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE(0x10, METHOD_BUFFERED)
|
---|
59 | #define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE(0x11, METHOD_BUFFERED)
|
---|
60 | #define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE(0x12, METHOD_BUFFERED)
|
---|
61 | #define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE(0x13, METHOD_BUFFERED)
|
---|
62 | #define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE(0x14, METHOD_BUFFERED)
|
---|
63 | #define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE(0x15, METHOD_BUFFERED)
|
---|
64 |
|
---|
65 |
|
---|
66 | #define OID_802_11_BSSID 0x0d010101
|
---|
67 | #define OID_802_11_SSID 0x0d010102
|
---|
68 | #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203
|
---|
69 | #define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204
|
---|
70 | #define OID_802_11_TX_POWER_LEVEL 0x0d010205
|
---|
71 | #define OID_802_11_RSSI 0x0d010206
|
---|
72 | #define OID_802_11_RSSI_TRIGGER 0x0d010207
|
---|
73 | #define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108
|
---|
74 | #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209
|
---|
75 | #define OID_802_11_RTS_THRESHOLD 0x0d01020a
|
---|
76 | #define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b
|
---|
77 | #define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c
|
---|
78 | #define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d
|
---|
79 | #define OID_802_11_SUPPORTED_RATES 0x0d01020e
|
---|
80 | #define OID_802_11_DESIRED_RATES 0x0d010210
|
---|
81 | #define OID_802_11_CONFIGURATION 0x0d010211
|
---|
82 | #define OID_802_11_STATISTICS 0x0d020212
|
---|
83 | #define OID_802_11_ADD_WEP 0x0d010113
|
---|
84 | #define OID_802_11_REMOVE_WEP 0x0d010114
|
---|
85 | #define OID_802_11_DISASSOCIATE 0x0d010115
|
---|
86 | #define OID_802_11_POWER_MODE 0x0d010216
|
---|
87 | #define OID_802_11_BSSID_LIST 0x0d010217
|
---|
88 | #define OID_802_11_AUTHENTICATION_MODE 0x0d010118
|
---|
89 | #define OID_802_11_PRIVACY_FILTER 0x0d010119
|
---|
90 | #define OID_802_11_BSSID_LIST_SCAN 0x0d01011a
|
---|
91 | #define OID_802_11_WEP_STATUS 0x0d01011b
|
---|
92 | #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
|
---|
93 | #define OID_802_11_RELOAD_DEFAULTS 0x0d01011c
|
---|
94 | #define OID_802_11_ADD_KEY 0x0d01011d
|
---|
95 | #define OID_802_11_REMOVE_KEY 0x0d01011e
|
---|
96 | #define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f
|
---|
97 | #define OID_802_11_TEST 0x0d010120
|
---|
98 | #define OID_802_11_MEDIA_STREAM_MODE 0x0d010121
|
---|
99 | #define OID_802_11_CAPABILITY 0x0d010122
|
---|
100 | #define OID_802_11_PMKID 0x0d010123
|
---|
101 | #define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124
|
---|
102 | #define OID_802_11_RADIO_STATUS 0x0d010125
|
---|
103 |
|
---|
104 | #define NDIS_802_11_LENGTH_SSID 32
|
---|
105 | #define NDIS_802_11_LENGTH_RATES 8
|
---|
106 | #define NDIS_802_11_LENGTH_RATES_EX 16
|
---|
107 |
|
---|
108 | typedef LONG NDIS_802_11_RSSI;
|
---|
109 |
|
---|
110 | typedef struct _NDIS_802_11_CONFIGURATION_FH {
|
---|
111 | ULONG Length;
|
---|
112 | ULONG HopPattern;
|
---|
113 | ULONG HopSet;
|
---|
114 | ULONG DwellTime;
|
---|
115 | } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
|
---|
116 |
|
---|
117 | typedef struct _NDIS_802_11_CONFIGURATION {
|
---|
118 | ULONG Length;
|
---|
119 | ULONG BeaconPeriod;
|
---|
120 | ULONG ATIMWindow;
|
---|
121 | ULONG DSConfig;
|
---|
122 | NDIS_802_11_CONFIGURATION_FH FHConfig;
|
---|
123 | } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
|
---|
124 |
|
---|
125 | typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
|
---|
126 |
|
---|
127 | typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE {
|
---|
128 | Ndis802_11IBSS,
|
---|
129 | Ndis802_11Infrastructure,
|
---|
130 | Ndis802_11AutoUnknown,
|
---|
131 | Ndis802_11InfrastructureMax
|
---|
132 | } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
|
---|
133 |
|
---|
134 | typedef enum _NDIS_802_11_NETWORK_TYPE {
|
---|
135 | Ndis802_11FH,
|
---|
136 | Ndis802_11DS,
|
---|
137 | Ndis802_11OFDM5,
|
---|
138 | Ndis802_11OFDM24,
|
---|
139 | Ndis802_11Automode,
|
---|
140 | Ndis802_11NetworkTypeMax
|
---|
141 | } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
|
---|
142 |
|
---|
143 | typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
|
---|
144 | typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
|
---|
145 |
|
---|
146 | typedef struct _NDIS_802_11_SSID {
|
---|
147 | ULONG SsidLength;
|
---|
148 | UCHAR Ssid[NDIS_802_11_LENGTH_SSID];
|
---|
149 | } NDIS_802_11_SSID, *PNDIS_802_11_SSID;
|
---|
150 |
|
---|
151 | typedef struct _NDIS_WLAN_BSSID {
|
---|
152 | ULONG Length;
|
---|
153 | NDIS_802_11_MAC_ADDRESS MacAddress;
|
---|
154 | UCHAR Reserved[2];
|
---|
155 | NDIS_802_11_SSID Ssid;
|
---|
156 | ULONG Privacy;
|
---|
157 | NDIS_802_11_RSSI Rssi;
|
---|
158 | NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
|
---|
159 | NDIS_802_11_CONFIGURATION Configuration;
|
---|
160 | NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
|
---|
161 | NDIS_802_11_RATES SupportedRates;
|
---|
162 | } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
|
---|
163 |
|
---|
164 | typedef struct _NDIS_802_11_BSSID_LIST {
|
---|
165 | ULONG NumberOfItems;
|
---|
166 | NDIS_WLAN_BSSID Bssid[1];
|
---|
167 | } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
|
---|
168 |
|
---|
169 | #ifndef _NDIS_
|
---|
170 | typedef int NDIS_STATUS, *PNDIS_STATUS;
|
---|
171 | #endif
|
---|
172 |
|
---|
173 | #ifdef __cplusplus
|
---|
174 | }
|
---|
175 | #endif
|
---|
176 |
|
---|
177 | #endif /* _NTDDNDIS_ */
|
---|