040b4a09341f574825386333398110f4db3e1e51vboxsync/*
040b4a09341f574825386333398110f4db3e1e51vboxsync * Copyright 2009 Jacek Caban for CodeWeavers
040b4a09341f574825386333398110f4db3e1e51vboxsync *
040b4a09341f574825386333398110f4db3e1e51vboxsync * This library is free software; you can redistribute it and/or
040b4a09341f574825386333398110f4db3e1e51vboxsync * modify it under the terms of the GNU Lesser General Public
040b4a09341f574825386333398110f4db3e1e51vboxsync * License as published by the Free Software Foundation; either
040b4a09341f574825386333398110f4db3e1e51vboxsync * version 2.1 of the License, or (at your option) any later version.
040b4a09341f574825386333398110f4db3e1e51vboxsync *
040b4a09341f574825386333398110f4db3e1e51vboxsync * This library is distributed in the hope that it will be useful,
040b4a09341f574825386333398110f4db3e1e51vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
040b4a09341f574825386333398110f4db3e1e51vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
040b4a09341f574825386333398110f4db3e1e51vboxsync * Lesser General Public License for more details.
040b4a09341f574825386333398110f4db3e1e51vboxsync *
040b4a09341f574825386333398110f4db3e1e51vboxsync * You should have received a copy of the GNU Lesser General Public
040b4a09341f574825386333398110f4db3e1e51vboxsync * License along with this library; if not, write to the Free Software
040b4a09341f574825386333398110f4db3e1e51vboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
040b4a09341f574825386333398110f4db3e1e51vboxsync */
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
040b4a09341f574825386333398110f4db3e1e51vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
040b4a09341f574825386333398110f4db3e1e51vboxsync * a choice of LGPL license versions is made available with the language indicating
040b4a09341f574825386333398110f4db3e1e51vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
040b4a09341f574825386333398110f4db3e1e51vboxsync * of the LGPL is applied is otherwise unspecified.
040b4a09341f574825386333398110f4db3e1e51vboxsync */
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#ifndef _NTDDNDIS_
040b4a09341f574825386333398110f4db3e1e51vboxsync#define _NTDDNDIS_
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#ifdef __cplusplus
040b4a09341f574825386333398110f4db3e1e51vboxsyncextern "C" {
040b4a09341f574825386333398110f4db3e1e51vboxsync#endif
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync/* #include <ifdef.h>*/
040b4a09341f574825386333398110f4db3e1e51vboxsync/* #include <devpkey.h> */
040b4a09341f574825386333398110f4db3e1e51vboxsync/* #include <pciprop.h> */
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#define _NDIS_CONTROL_CODE(request, method) \
040b4a09341f574825386333398110f4db3e1e51vboxsync CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1, METHOD_OUT_DIRECT)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3, METHOD_OUT_DIRECT)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7, METHOD_OUT_DIRECT)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED1 _NDIS_CONTROL_CODE(0x09, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED2 _NDIS_CONTROL_CODE(0x0a, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED3 _NDIS_CONTROL_CODE(0x0b, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED4 _NDIS_CONTROL_CODE(0x0c, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED5 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0d, METHOD_BUFFERED, FILE_ANY_ACCESS)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED6 CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, 0x0e, METHOD_BUFFERED, FILE_WRITE_ACCESS)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED7 _NDIS_CONTROL_CODE(0x0f, METHOD_OUT_DIRECT)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED8 _NDIS_CONTROL_CODE(0x10, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED9 _NDIS_CONTROL_CODE(0x11, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED10 _NDIS_CONTROL_CODE(0x12, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED11 _NDIS_CONTROL_CODE(0x13, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED12 _NDIS_CONTROL_CODE(0x14, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync#define IOCTL_NDIS_RESERVED13 _NDIS_CONTROL_CODE(0x15, METHOD_BUFFERED)
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_BSSID 0x0d010101
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_SSID 0x0d010102
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0d010203
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_NETWORK_TYPE_IN_USE 0x0d010204
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_TX_POWER_LEVEL 0x0d010205
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RSSI 0x0d010206
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RSSI_TRIGGER 0x0d010207
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_INFRASTRUCTURE_MODE 0x0d010108
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0d010209
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RTS_THRESHOLD 0x0d01020a
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_NUMBER_OF_ANTENNAS 0x0d01020b
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RX_ANTENNA_SELECTED 0x0d01020c
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_TX_ANTENNA_SELECTED 0x0d01020d
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_SUPPORTED_RATES 0x0d01020e
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_DESIRED_RATES 0x0d010210
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_CONFIGURATION 0x0d010211
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_STATISTICS 0x0d020212
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_ADD_WEP 0x0d010113
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_REMOVE_WEP 0x0d010114
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_DISASSOCIATE 0x0d010115
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_POWER_MODE 0x0d010216
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_BSSID_LIST 0x0d010217
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_AUTHENTICATION_MODE 0x0d010118
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_PRIVACY_FILTER 0x0d010119
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_BSSID_LIST_SCAN 0x0d01011a
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_WEP_STATUS 0x0d01011b
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RELOAD_DEFAULTS 0x0d01011c
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_ADD_KEY 0x0d01011d
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_REMOVE_KEY 0x0d01011e
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_ASSOCIATION_INFORMATION 0x0d01011f
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_TEST 0x0d010120
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_MEDIA_STREAM_MODE 0x0d010121
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_CAPABILITY 0x0d010122
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_PMKID 0x0d010123
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_NON_BCAST_SSID_LIST 0x0d010124
040b4a09341f574825386333398110f4db3e1e51vboxsync#define OID_802_11_RADIO_STATUS 0x0d010125
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#define NDIS_802_11_LENGTH_SSID 32
040b4a09341f574825386333398110f4db3e1e51vboxsync#define NDIS_802_11_LENGTH_RATES 8
040b4a09341f574825386333398110f4db3e1e51vboxsync#define NDIS_802_11_LENGTH_RATES_EX 16
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef LONG NDIS_802_11_RSSI;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef struct _NDIS_802_11_CONFIGURATION_FH {
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG Length;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG HopPattern;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG HopSet;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG DwellTime;
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef struct _NDIS_802_11_CONFIGURATION {
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG Length;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG BeaconPeriod;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG ATIMWindow;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG DSConfig;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_CONFIGURATION_FH FHConfig;
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE {
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11IBSS,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11Infrastructure,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11AutoUnknown,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11InfrastructureMax
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef enum _NDIS_802_11_NETWORK_TYPE {
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11FH,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11DS,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11OFDM5,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11OFDM24,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11Automode,
040b4a09341f574825386333398110f4db3e1e51vboxsync Ndis802_11NetworkTypeMax
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef struct _NDIS_802_11_SSID {
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG SsidLength;
040b4a09341f574825386333398110f4db3e1e51vboxsync UCHAR Ssid[NDIS_802_11_LENGTH_SSID];
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_SSID, *PNDIS_802_11_SSID;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef struct _NDIS_WLAN_BSSID {
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG Length;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_MAC_ADDRESS MacAddress;
040b4a09341f574825386333398110f4db3e1e51vboxsync UCHAR Reserved[2];
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_SSID Ssid;
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG Privacy;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_RSSI Rssi;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_CONFIGURATION Configuration;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_802_11_RATES SupportedRates;
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef struct _NDIS_802_11_BSSID_LIST {
040b4a09341f574825386333398110f4db3e1e51vboxsync ULONG NumberOfItems;
040b4a09341f574825386333398110f4db3e1e51vboxsync NDIS_WLAN_BSSID Bssid[1];
040b4a09341f574825386333398110f4db3e1e51vboxsync} NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#ifndef _NDIS_
040b4a09341f574825386333398110f4db3e1e51vboxsynctypedef int NDIS_STATUS, *PNDIS_STATUS;
040b4a09341f574825386333398110f4db3e1e51vboxsync#endif
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#ifdef __cplusplus
040b4a09341f574825386333398110f4db3e1e51vboxsync}
040b4a09341f574825386333398110f4db3e1e51vboxsync#endif
040b4a09341f574825386333398110f4db3e1e51vboxsync
040b4a09341f574825386333398110f4db3e1e51vboxsync#endif /* _NTDDNDIS_ */