18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA Supplicant - Windows/NDIS driver interface
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef DRIVER_NDIS_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DRIVER_NDIS_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_NDIS_EVENTS_INTEGRATED
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ndis_events_data;
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ndis_events_data * ndis_events_init(HANDLE *read_pipe, HANDLE *event,
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					   const char *ifname,
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					   const char *desc);
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid ndis_events_deinit(struct ndis_events_data *events);
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_NDIS_EVENTS_INTEGRATED */
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct ndis_pmkid_entry {
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ndis_pmkid_entry *next;
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 bssid[ETH_ALEN];
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 pmkid[16];
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpa_driver_ndis_data {
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	void *ctx;
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	char ifname[100]; /* GUID: {7EE3EFE5-C165-472F-986D-F6FBEDFE8C8D} */
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef _WIN32_WCE
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	TCHAR *adapter_name;
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	HANDLE event_queue; /* NDISUIO notifier MsgQueue */
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	HANDLE connected_event; /* WpaSupplicantConnected event */
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* _WIN32_WCE */
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 own_addr[ETH_ALEN];
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_USE_NDISUIO
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	HANDLE ndisuio;
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#else /* CONFIG_USE_NDISUIO */
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	LPADAPTER adapter;
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_USE_NDISUIO */
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	u8 bssid[ETH_ALEN];
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int has_capability;
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int no_of_pmkid;
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int radio_enabled;
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct wpa_driver_capa capa;
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ndis_pmkid_entry *pmkid;
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	char *adapter_desc;
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int wired;
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int native80211;
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int mode;
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int wzc_disabled;
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	int oid_bssid_set;
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_NDIS_EVENTS_INTEGRATED
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	HANDLE events_pipe, event_avail;
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	struct ndis_events_data *events;
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_NDIS_EVENTS_INTEGRATED */
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt};
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* DRIVER_NDIS_H */
60