TianoCore EDK2 master
Loading...
Searching...
No Matches
WiFi2.h
Go to the documentation of this file.
1
12#ifndef __EFI_WIFI2_PROTOCOL_H__
13#define __EFI_WIFI2_PROTOCOL_H__
14
15#define EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL_GUID \
16 { \
17 0x1b0fb9bf, 0x699d, 0x4fdd, { 0xa7, 0xc3, 0x25, 0x46, 0x68, 0x1b, 0xf6, 0x3b } \
18 }
19
21
25typedef enum {
26 IeeeInfrastructureBSS,
27 IeeeIndependentBSS,
28 IeeeMeshBSS,
29 IeeeAnyBss
31
35typedef enum {
36 //
37 // The connection establishment operation finished successfully.
38 //
39 ConnectSuccess,
40 //
41 // The connection was refused by the Network.
42 //
43 ConnectRefused,
44 //
45 // The connection establishment operation failed (i.e, Network is not
46 // detected).
47 //
48 ConnectFailed,
49 //
50 // The connection establishment operation was terminated on timeout.
51 //
52 ConnectFailureTimeout,
53 //
54 // The connection establishment operation failed on other reason.
55 //
56 ConnectFailedReasonUnspecified
58
62typedef struct {
63 UINT8 Addr[6];
65
66#define EFI_MAX_SSID_LEN 32
67
71typedef struct {
72 //
73 // Length in bytes of the SSId. If zero, ignore SSId field.
74 //
75 UINT8 SSIdLen;
76 //
77 // Specifies the service set identifier.
78 //
79 UINT8 SSId[EFI_MAX_SSID_LEN];
81
85typedef struct {
86 //
87 // The number of EFI_80211_SSID in SSIDList. If zero, SSIDList should be
88 // ignored.
89 //
90 UINT32 NumOfSSID;
91 //
92 // The SSIDList is a pointer to an array of EFI_80211_SSID instances. The
93 // number of entries is specified by NumOfSSID. The array should only include
94 // SSIDs of hidden networks. It is suggested that the caller inputs less than
95 // 10 elements in the SSIDList. It is the caller's responsibility to free
96 // this buffer.
97 //
98 EFI_80211_SSID SSIDList[1];
100
104typedef struct {
105 //
106 // Organization Unique Identifier, as defined in IEEE 802.11 standard,
107 // usually set to 00-0F-AC.
108 //
109 UINT8 Oui[3];
110 //
111 // Suites types, as defined in IEEE 802.11 standard.
112 //
113 UINT8 SuiteType;
115
119typedef struct {
120 //
121 // Indicates the number of AKM suite selectors that are contained in
122 // AKMSuiteList. If zero, the AKMSuiteList is ignored.
123 //
124 UINT16 AKMSuiteCount;
125 //
126 // A variable-length array of AKM suites, as defined in IEEE 802.11 standard,
127 // Table 8-101. The number of entries is specified by AKMSuiteCount.
128 //
129 EFI_80211_SUITE_SELECTOR AKMSuiteList[1];
131
135typedef struct {
136 //
137 // Indicates the number of cipher suites that are contained in
138 // CipherSuiteList. If zero, the CipherSuiteList is ignored.
139 //
140 UINT16 CipherSuiteCount;
141 //
142 // A variable-length array of cipher suites, as defined in IEEE 802.11
143 // standard, Table 8-99. The number of entries is specified by
144 // CipherSuiteCount.
145 //
146 EFI_80211_SUITE_SELECTOR CipherSuiteList[1];
148
152typedef struct {
153 //
154 // Specifies the type of the BSS.
155 //
156 EFI_80211_BSS_TYPE BSSType;
157 //
158 // Specifies the SSID of the BSS.
159 //
160 EFI_80211_SSID SSId;
161 //
162 // Pointer to the AKM suites supported in the wireless network.
163 //
165 //
166 // Pointer to the cipher suites supported in the wireless network.
167 //
170
174typedef struct {
175 //
176 // Specifies the found wireless network.
177 //
178 EFI_80211_NETWORK Network;
179 //
180 // Indicates the network quality as a value between 0 to 100, where 100
181 // indicates the highest network quality.
182 //
183 UINT8 NetworkQuality;
185
189typedef struct {
190 //
191 // The number of EFI_80211_NETWORK_DESCRIPTION in NetworkDesc. If zero,
192 // NetworkDesc should be ignored.
193 //
194 UINT8 NumOfNetworkDesc;
195 //
196 // The NetworkDesc is a pointer to an array of EFI_80211_NETWORK_DESCRIPTION
197 // instances. It is caller's responsibility to free this buffer.
198 //
199 EFI_80211_NETWORK_DESCRIPTION NetworkDesc[1];
201
205typedef struct {
206 //
207 // If the status code returned by GetNetworks() is EFI_SUCCESS, then this
208 // Event will be signaled after the Status field is updated by the EFI
209 // Wireless MAC Connection Protocol II driver. The type of Event must be
210 // EFI_NOTIFY_SIGNAL.
211 //
212 EFI_EVENT Event;
213 //
214 // Will be set to one of the following values:
215 // EFI_SUCCESS: The operation completed successfully.
216 // EFI_NOT_FOUND: Failed to find available wireless networks.
217 // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
218 // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
219 // hardware or software state.
220 // EFI_NOT_READY: The operation is started but not yet completed.
221 //
222 EFI_STATUS Status;
223 //
224 // Pointer to the input data for getting networks.
225 //
227 //
228 // Indicates the scan result. It is caller's responsibility to free this
229 // buffer.
230 //
233
237typedef struct {
238 //
239 // Specifies the wireless network to connect to.
240 //
241 EFI_80211_NETWORK *Network;
242 //
243 // Specifies a time limit in seconds that is optionally present, after which
244 // the connection establishment procedure is terminated by the UNDI driver.
245 // This is an optional parameter and may be 0. Values of 5 seconds or higher
246 // are recommended.
247 //
248 UINT32 FailureTimeout;
250
254typedef struct {
255 //
256 // If the status code returned by ConnectNetwork() is EFI_SUCCESS, then this
257 // Event will be signaled after the Status field is updated by the EFI
258 // Wireless MAC Connection Protocol II driver. The type of Event must be
259 // EFI_NOTIFY_SIGNAL.
260 //
261 EFI_EVENT Event;
262 //
263 // Will be set to one of the following values:
264 // EFI_SUCCESS: The operation completed successfully.
265 // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
266 // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
267 // hardware or software state.
268 // EFI_NOT_READY: The operation is started but not yet completed.
269 //
270 EFI_STATUS Status;
271 //
272 // Pointer to the connection data.
273 //
275 //
276 // Indicates the connection state.
277 //
280
284typedef struct {
285 //
286 // If the status code returned by DisconnectNetwork() is EFI_SUCCESS, then
287 // this Event will be signaled after the Status field is updated by the EFI
288 // Wireless MAC Connection Protocol II driver. The type of Event must be
289 // EFI_NOTIFY_SIGNAL.
290 //
291 EFI_EVENT Event;
292 //
293 // Will be set to one of the following values:
294 // EFI_SUCCESS: The operation completed successfully
295 // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
296 // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
297 // hardware or software state.
298 //
299 EFI_STATUS Status;
301
326typedef
331 );
332
357typedef
362 );
363
386typedef
391 );
392
403};
404
405extern EFI_GUID gEfiWiFi2ProtocolGuid;
406
407#endif
#define IN
Definition: Base.h:279
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
EFI_STATUS(EFIAPI * EFI_WIRELESS_MAC_CONNECTION_II_DISCONNECT_NETWORK)(IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL *This, IN EFI_80211_DISCONNECT_NETWORK_TOKEN *Token)
Definition: WiFi2.h:388
EFI_STATUS(EFIAPI * EFI_WIRELESS_MAC_CONNECTION_II_CONNECT_NETWORK)(IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL *This, IN EFI_80211_CONNECT_NETWORK_TOKEN *Token)
Definition: WiFi2.h:359
EFI_80211_BSS_TYPE
Definition: WiFi2.h:25
EFI_STATUS(EFIAPI * EFI_WIRELESS_MAC_CONNECTION_II_GET_NETWORKS)(IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL *This, IN EFI_80211_GET_NETWORKS_TOKEN *Token)
Definition: WiFi2.h:328
EFI_80211_CONNECT_NETWORK_RESULT_CODE
Definition: WiFi2.h:35
Definition: Base.h:213