AirPcap definitions and data structures

Data Structures

struct  _AirpcapDeviceDescription
 Entry in the list returned by AirpcapGetDeviceList(). More...
struct  _AirpcapKey
 WEP key container. More...
struct  _AirpcapMacAddress
 Storage for a MAC address. More...
struct  _AirpcapKeysCollection
 This structure is used to store a collection of WEP keys. Note that the definition of the structure doesn't contain any key, so be careful to allocate a buffer with the size of the key, like in the following example:. More...
struct  _AirpcapBpfHeader
 Packet header. More...
struct  _AirpcapDeviceTimestamp
 Structure used to read the free running counter on a device. More...
struct  _AirpcapChannelInfo
 Channel information. Used by AirpcapSetDeviceChannelEx(), AirpcapGetDeviceChannelEx(), AirpcapGetDeviceSupportedChannels(). More...
struct  _AirpcapStats
 Capture statistics. Returned by AirpcapGetStats(). More...
struct  _AirpcapDeviceCapabilities
 Device capabilities. Returned by AirpcapGetDeviceCapabilities(). More...

Defines

#define AIRPCAP_DEVICE_NAME_PREFIX   "\\\\.\\airpcap"
 This string is the fixed prefix in the airpcap adapter name. It can be used to parse the name field in an AirpcapDeviceDescription structure.
#define AIRPCAP_DEVICE_NUMBER_EXTRACT_STRING   "\\\\.\\airpcap%u"
 This string is the scanf modifier to extract the adapter number from an adapter name. It can be used to parse the name field in an AirpcapDeviceDescription structure with scanf.
#define MAX_ENCRYPTION_KEYS   64
#define WEP_KEY_MAX_SIZE   32
 AirpcapWepKeysCollection structure.
#define AIRPCAP_KEYTYPE_WEP   0
 Key type: WEP. The key can have an arbitrary length smaller than 32 bytes.
#define AIRPCAP_KEYTYPE_TKIP   1
 Key type: TKIP (WPA). NOT SUPPORTED YET.
#define AIRPCAP_KEYTYPE_CCMP   2
 Key type: CCMP (WPA2). NOT SUPPORTED YET.
#define AIRPCAP_MEDIUM_802_11_A   1
 802.11a medium.
#define AIRPCAP_MEDIUM_802_11_B   2
 802.11b medium.
#define AIRPCAP_MEDIUM_802_11_G   4
 802.11g medium.
#define AIRPCAP_MEDIUM_802_11_N   8
 802.11n medium.
#define AIRPCAP_BAND_2GHZ   1
 2.4 GHz band.
#define AIRPCAP_BAND_5GHZ   2
 5 GHz band.
#define AIRPCAP_ALIGNMENT   sizeof(int)
 Helper macros to extract packets coming from the driver. Rounds up to the next even multiple of AIRPCAP_ALIGNMENT.
#define AIRPCAP_WORDALIGN(x)   (((x)+(AIRPCAP_ALIGNMENT-1))&~(AIRPCAP_ALIGNMENT-1))
#define AIRPCAP_ERRBUF_SIZE   512
 Size of the error buffer, in bytes.
#define AIRPCAP_CIF_TX_ENABLED   0x1
 Channel info flag: the channel is enabled for transmission, too.
#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
#define AIRPCAP_MF_MONITOR_MODE_ON   1
#define AIRPCAP_MF_ACK_FRAMES_ON   2
 802.11 network, bacause handling the ACKs in software is normally too slow.

Typedefs

typedef struct
_AirpcapDeviceDescription 
AirpcapDeviceDescription
 Entry in the list returned by AirpcapGetDeviceList().
typedef struct
_AirpcapDeviceDescription
PAirpcapDeviceDescription
typedef struct _AirpcapKey AirpcapKey
 WEP key container.
typedef struct _AirpcapKeyPAirpcapKey
typedef enum _AirpcapChannelBand AirpcapChannelBand
 frequency Band. 802.11 adapters can support different frequency bands, the most important of which are: 2.4GHz (802.11b/g/n) and 5GHz (802.11a/n).
typedef enum _AirpcapChannelBandPAirpcapChannelBand
typedef enum _AirpcapValidationType AirpcapValidationType
 Type of frame validation the adapter performs. An adapter can be instructed to accept different kind of frames: correct frames only, frames with wrong Frame Check Sequence (FCS) only, all frames.
typedef enum
_AirpcapValidationType
PAirpcapValidationType
typedef enum
_AirpcapDecryptionState 
AirpcapDecryptionState
 Type of decryption the adapter performs. An adapter can be instructed to turn decryption (based on the device-configured keys configured with AirpcapSetDeviceKeys()) on or off.
typedef enum
_AirpcapDecryptionState
PAirpcapDecryptionState
typedef enum _AirpcapAdapterBus AirpcapAdapterBus
typedef enum _AirpcapAdapterId AirpcapAdapterId
typedef struct _AirpcapMacAddress AirpcapMacAddress
 Storage for a MAC address.
typedef struct _AirpcapMacAddressPAirpcapMacAddress
typedef struct
_AirpcapKeysCollection 
AirpcapKeysCollection
 This structure is used to store a collection of WEP keys. Note that the definition of the structure doesn't contain any key, so be careful to allocate a buffer with the size of the key, like in the following example:.
typedef struct
_AirpcapKeysCollection
PAirpcapKeysCollection
typedef struct _AirpcapBpfHeader AirpcapBpfHeader
 Packet header.
typedef struct _AirpcapBpfHeaderPAirpcapBpfHeader
typedef struct
_AirpcapDeviceTimestamp 
AirpcapDeviceTimestamp
 Structure used to read the free running counter on a device.
typedef struct
_AirpcapDeviceTimestamp
PAirpcapDeviceTimestamp
typedef struct _AirpcapChannelInfo AirpcapChannelInfo
 Channel information. Used by AirpcapSetDeviceChannelEx(), AirpcapGetDeviceChannelEx(), AirpcapGetDeviceSupportedChannels().
typedef struct
_AirpcapChannelInfo
PAirpcapChannelInfo
typedef enum _AirpcapLinkType AirpcapLinkType
 Link type.
typedef enum _AirpcapLinkTypePAirpcapLinkType
typedef struct _AirpcapHandle AirpcapHandle
 Adapter handle.
typedef struct _AirpcapHandle * PAirpcapHandle
typedef struct _AirpcapStats AirpcapStats
 Capture statistics. Returned by AirpcapGetStats().
typedef struct _AirpcapStatsPAirpcapStats
typedef struct
_AirpcapDeviceCapabilities 
AirpcapDeviceCapabilities
 Device capabilities. Returned by AirpcapGetDeviceCapabilities().
typedef struct
_AirpcapDeviceCapabilities
PAirpcapDeviceCapabilities

Enumerations

enum  _AirpcapChannelBand { AIRPCAP_CB_AUTO = 1, AIRPCAP_CB_2_4_GHZ = 2, AIRPCAP_CB_4_GHZ = 4, AIRPCAP_CB_5_GHZ = 5 }
 

frequency Band. 802.11 adapters can support different frequency bands, the most important of which are: 2.4GHz (802.11b/g/n) and 5GHz (802.11a/n).

More...
enum  _AirpcapValidationType { AIRPCAP_VT_ACCEPT_EVERYTHING = 1, AIRPCAP_VT_ACCEPT_CORRECT_FRAMES = 2, AIRPCAP_VT_ACCEPT_CORRUPT_FRAMES = 3, AIRPCAP_VT_UNKNOWN = 4 }
 

Type of frame validation the adapter performs. An adapter can be instructed to accept different kind of frames: correct frames only, frames with wrong Frame Check Sequence (FCS) only, all frames.

More...
enum  _AirpcapDecryptionState { AIRPCAP_DECRYPTION_ON = 1, AIRPCAP_DECRYPTION_OFF = 2 }
 

Type of decryption the adapter performs. An adapter can be instructed to turn decryption (based on the device-configured keys configured with AirpcapSetDeviceKeys()) on or off.

More...
enum  _AirpcapAdapterBus {
  AIRPCAP_BUS_USB, AIRPCAP_BUS_PCI, AIRPCAP_BUS_PCI_EXPRESS, AIRPCAP_BUS_MINI_PCI,
  AIRPCAP_BUS_MINI_PCI_EXPRESS, AIRPCAP_BUS_CARDBUS, AIRPCAP_BUS_EXPRESSCARD
}
enum  _AirpcapAdapterId {
  AIRPCAP_ID_CLASSIC, AIRPCAP_ID_CLASSIC_REL2, AIRPCAP_ID_TX, AIRPCAP_ID_EX,
  AIRPCAP_ID_N, AIRPCAP_ID_NX
}
enum  _AirpcapLinkType { AIRPCAP_LT_802_11 = 1, AIRPCAP_LT_802_11_PLUS_RADIO = 2, AIRPCAP_LT_UNKNOWN = 3, AIRPCAP_LT_802_11_PLUS_PPI = 4 }
 

Link type.

More...

Define Documentation

#define AIRPCAP_DEVICE_NAME_PREFIX   "\\\\.\\airpcap"

This string is the fixed prefix in the airpcap adapter name. It can be used to parse the name field in an AirpcapDeviceDescription structure.

#define AIRPCAP_DEVICE_NUMBER_EXTRACT_STRING   "\\\\.\\airpcap%u"

This string is the scanf modifier to extract the adapter number from an adapter name. It can be used to parse the name field in an AirpcapDeviceDescription structure with scanf.

#define MAX_ENCRYPTION_KEYS   64
#define WEP_KEY_MAX_SIZE   32

AirpcapWepKeysCollection structure.

Maximum size of a WEP key, in bytes. This is the size of an entry in the

#define AIRPCAP_KEYTYPE_WEP   0

Key type: WEP. The key can have an arbitrary length smaller than 32 bytes.

#define AIRPCAP_KEYTYPE_TKIP   1

Key type: TKIP (WPA). NOT SUPPORTED YET.

#define AIRPCAP_KEYTYPE_CCMP   2

Key type: CCMP (WPA2). NOT SUPPORTED YET.

#define AIRPCAP_MEDIUM_802_11_A   1

802.11a medium.

#define AIRPCAP_MEDIUM_802_11_B   2

802.11b medium.

#define AIRPCAP_MEDIUM_802_11_G   4

802.11g medium.

#define AIRPCAP_MEDIUM_802_11_N   8

802.11n medium.

#define AIRPCAP_BAND_2GHZ   1

2.4 GHz band.

#define AIRPCAP_BAND_5GHZ   2

5 GHz band.

#define AIRPCAP_ALIGNMENT   sizeof(int)

Helper macros to extract packets coming from the driver. Rounds up to the next even multiple of AIRPCAP_ALIGNMENT.

#define AIRPCAP_WORDALIGN (  )     (((x)+(AIRPCAP_ALIGNMENT-1))&~(AIRPCAP_ALIGNMENT-1))
#define AIRPCAP_ERRBUF_SIZE   512

Size of the error buffer, in bytes.

#define AIRPCAP_CIF_TX_ENABLED   0x1

Channel info flag: the channel is enabled for transmission, too.

To comply with the electomagnetic emission regulations of the different countries, the AirPcap hardware can be programmed to block transmission on specific channels. This flag is set by AirpcapGetDeviceSupportedChannels() to indicate that a channel in the list supports transmission.

#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
#define AIRPCAP_MF_MONITOR_MODE_ON   1

If set, the device is configured to work in monitor mode. When monitor mode is on, the device captures all the frames transmitted on the channel. This includes:

  • unicast packets
  • multicast packets
  • broadcast packets
  • control and management packets

When monitor mode is off, the device has a filter on unicast packets to capture only the packets whose MAC destination address equals the device's address. This means the following frames will be received:

  • unicast packets whose destination is the address of the device
  • multicast packets
  • broadcast packets
  • beacons and probe requests
#define AIRPCAP_MF_ACK_FRAMES_ON   2

802.11 network, bacause handling the ACKs in software is normally too slow.

If set, the device will acknowledge the data frames sent to its address. This is useful when the device needs to interact with other devices on the


Typedef Documentation

Entry in the list returned by AirpcapGetDeviceList().

typedef struct _AirpcapKey AirpcapKey

WEP key container.

typedef struct _AirpcapKey * PAirpcapKey

frequency Band. 802.11 adapters can support different frequency bands, the most important of which are: 2.4GHz (802.11b/g/n) and 5GHz (802.11a/n).

Type of frame validation the adapter performs. An adapter can be instructed to accept different kind of frames: correct frames only, frames with wrong Frame Check Sequence (FCS) only, all frames.

Type of decryption the adapter performs. An adapter can be instructed to turn decryption (based on the device-configured keys configured with AirpcapSetDeviceKeys()) on or off.

Storage for a MAC address.

This structure is used to store a collection of WEP keys. Note that the definition of the structure doesn't contain any key, so be careful to allocate a buffer with the size of the key, like in the following example:.

    PAirpcapKeysCollection KeysCollection;
    UINT KeysCollectionSize;
    
    KeysCollectionSize = sizeof(AirpcapKeysCollection) + NumKeys * sizeof(AirpcapKey);
    
    KeysCollection = (PAirpcapKeysCollection)malloc(KeysCollectionSize);
    if(!KeysCollection)
    {
 Error
    }

Packet header.

This structure defines the BPF that preceeds every packet delivered to the application.

Structure used to read the free running counter on a device.

This structure contains the current value of the counter used by the device to timestamp packets (when the hardware supports hardware timestamps). This structure also contains the value of the software counter (used to timestamp packets in software), before and after the hardware counter is read on the device.

Link type.

AirPcap supports three 802.11 link types:

typedef struct _AirpcapHandle AirpcapHandle

Adapter handle.

typedef struct _AirpcapHandle * PAirpcapHandle
typedef struct _AirpcapStats AirpcapStats

Capture statistics. Returned by AirpcapGetStats().

typedef struct _AirpcapStats * PAirpcapStats

Device capabilities. Returned by AirpcapGetDeviceCapabilities().


Enumeration Type Documentation

frequency Band. 802.11 adapters can support different frequency bands, the most important of which are: 2.4GHz (802.11b/g/n) and 5GHz (802.11a/n).

Enumerator:
AIRPCAP_CB_AUTO 

Automatically pick the best frequency band.

AIRPCAP_CB_2_4_GHZ 

2.4 GHz frequency band

AIRPCAP_CB_4_GHZ 

4 GHz frequency band

AIRPCAP_CB_5_GHZ 

5 GHz frequency band

Type of frame validation the adapter performs. An adapter can be instructed to accept different kind of frames: correct frames only, frames with wrong Frame Check Sequence (FCS) only, all frames.

Enumerator:
AIRPCAP_VT_ACCEPT_EVERYTHING 

Accept all the frames the device captures.

AIRPCAP_VT_ACCEPT_CORRECT_FRAMES 

Accept correct frames only, i.e. frames with correct Frame Check Sequence (FCS).

AIRPCAP_VT_ACCEPT_CORRUPT_FRAMES 

Accept corrupt frames only, i.e. frames with worng Frame Check Sequence (FCS).

AIRPCAP_VT_UNKNOWN 

Unknown validation type. You should see it only in case of error.

Type of decryption the adapter performs. An adapter can be instructed to turn decryption (based on the device-configured keys configured with AirpcapSetDeviceKeys()) on or off.

Enumerator:
AIRPCAP_DECRYPTION_ON 

This adapter performs decryption.

AIRPCAP_DECRYPTION_OFF 

This adapter does not perform decryption.

Enumerator:
AIRPCAP_BUS_USB 
AIRPCAP_BUS_PCI 
AIRPCAP_BUS_PCI_EXPRESS 
AIRPCAP_BUS_MINI_PCI 
AIRPCAP_BUS_MINI_PCI_EXPRESS 
AIRPCAP_BUS_CARDBUS 
AIRPCAP_BUS_EXPRESSCARD 
Enumerator:
AIRPCAP_ID_CLASSIC 
AIRPCAP_ID_CLASSIC_REL2 
AIRPCAP_ID_TX 
AIRPCAP_ID_EX 
AIRPCAP_ID_N 
AIRPCAP_ID_NX 

Link type.

AirPcap supports three 802.11 link types:

Enumerator:
AIRPCAP_LT_802_11 

plain 802.11 link type. Every packet in the buffer contains the raw 802.11 frame, including MAC FCS.

AIRPCAP_LT_802_11_PLUS_RADIO 

802.11 plus radiotap link type. Every packet in the buffer contains a radiotap header followed by the 802.11 frame. MAC FCS is included.

AIRPCAP_LT_UNKNOWN 

Unknown link type. You should see it only in case of error.

AIRPCAP_LT_802_11_PLUS_PPI 

802.11 plus PPI header link type. Every packet in the buffer contains a PPI header followed by the 802.11 frame. MAC FCS is included.


AirPcap documentation. Copyright (c) 2006-2008 CACE Technologies, Inc. All rights reserved.