1189251Ssam/*
2189251Ssam * WPA Supplicant - Windows/NDIS driver interface
3189251Ssam * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
4189251Ssam *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7189251Ssam */
8189251Ssam
9189251Ssam#ifndef DRIVER_NDIS_H
10189251Ssam#define DRIVER_NDIS_H
11189251Ssam
12189251Ssam#ifdef CONFIG_NDIS_EVENTS_INTEGRATED
13189251Ssamstruct ndis_events_data;
14189251Ssamstruct ndis_events_data * ndis_events_init(HANDLE *read_pipe, HANDLE *event,
15189251Ssam					   const char *ifname,
16189251Ssam					   const char *desc);
17189251Ssamvoid ndis_events_deinit(struct ndis_events_data *events);
18189251Ssam#endif /* CONFIG_NDIS_EVENTS_INTEGRATED */
19189251Ssam
20189251Ssamstruct ndis_pmkid_entry {
21189251Ssam	struct ndis_pmkid_entry *next;
22189251Ssam	u8 bssid[ETH_ALEN];
23189251Ssam	u8 pmkid[16];
24189251Ssam};
25189251Ssam
26189251Ssamstruct wpa_driver_ndis_data {
27189251Ssam	void *ctx;
28189251Ssam	char ifname[100]; /* GUID: {7EE3EFE5-C165-472F-986D-F6FBEDFE8C8D} */
29189251Ssam#ifdef _WIN32_WCE
30189251Ssam	TCHAR *adapter_name;
31189251Ssam	HANDLE event_queue; /* NDISUIO notifier MsgQueue */
32189251Ssam	HANDLE connected_event; /* WpaSupplicantConnected event */
33189251Ssam#endif /* _WIN32_WCE */
34189251Ssam	u8 own_addr[ETH_ALEN];
35189251Ssam#ifdef CONFIG_USE_NDISUIO
36189251Ssam	HANDLE ndisuio;
37189251Ssam#else /* CONFIG_USE_NDISUIO */
38189251Ssam	LPADAPTER adapter;
39189251Ssam#endif /* CONFIG_USE_NDISUIO */
40189251Ssam	u8 bssid[ETH_ALEN];
41189251Ssam
42189251Ssam	int has_capability;
43189251Ssam	int no_of_pmkid;
44189251Ssam	int radio_enabled;
45189251Ssam	struct wpa_driver_capa capa;
46189251Ssam	struct ndis_pmkid_entry *pmkid;
47189251Ssam	char *adapter_desc;
48189251Ssam	int wired;
49214734Srpaulo	int native80211;
50189251Ssam	int mode;
51189251Ssam	int wzc_disabled;
52189251Ssam	int oid_bssid_set;
53189251Ssam#ifdef CONFIG_NDIS_EVENTS_INTEGRATED
54189251Ssam	HANDLE events_pipe, event_avail;
55189251Ssam	struct ndis_events_data *events;
56189251Ssam#endif /* CONFIG_NDIS_EVENTS_INTEGRATED */
57189251Ssam};
58189251Ssam
59189251Ssam#endif /* DRIVER_NDIS_H */
60