Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

Packet.dll definitions and data structures
[Packet Driver API developer's manual]


Data Structures

struct  NetType
 Network type structure. More...

struct  bpf_program
 A BPF pseudo-assembly program. More...

struct  bpf_insn
 A single BPF pseudo-instruction. More...

struct  bpf_stat
 Structure that contains a couple of statistics values on the current capture. More...

struct  bpf_hdr
 Packet header. More...

struct  dump_bpf_hdr
 Dump packet header. More...

struct  npf_if_addr
 Addresses of a network adapter. More...

struct  _ADAPTER_INFO
 Contains comprehensive information about a network adapter. More...

struct  _ADAPTER
 Describes an opened network adapter. More...

struct  _PACKET
 Structure that contains a group of packets coming from the driver. More...

struct  _PACKET_OID_DATA
 Structure containing an OID request. More...


Defines

#define PACKET_MODE_CAPT   0x0
 Capture mode.

#define PACKET_MODE_STAT   0x1
 Statistical mode.

#define PACKET_MODE_MON   0x2
 Monitoring mode.

#define PACKET_MODE_DUMP   0x10
 Dump mode.

#define PACKET_MODE_STAT_DUMP   MODE_DUMP | MODE_STAT
 Statistical dump Mode.

#define FILE_DEVICE_PROTOCOL   0x8000
#define IOCTL_PROTOCOL_STATISTICS   CTL_CODE(FILE_DEVICE_PROTOCOL, 2 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_RESET   CTL_CODE(FILE_DEVICE_PROTOCOL, 3 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_READ   CTL_CODE(FILE_DEVICE_PROTOCOL, 4 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_WRITE   CTL_CODE(FILE_DEVICE_PROTOCOL, 5 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PROTOCOL_MACNAME   CTL_CODE(FILE_DEVICE_PROTOCOL, 6 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_OPEN   CTL_CODE(FILE_DEVICE_PROTOCOL, 7 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_CLOSE   CTL_CODE(FILE_DEVICE_PROTOCOL, 8 , METHOD_BUFFERED, FILE_ANY_ACCESS)
#define pBIOCSETBUFFERSIZE   9592
 IOCTL code: set kernel buffer size.

#define pBIOCSETF   9030
 IOCTL code: set packet filtering program.

#define pBIOCGSTATS   9031
 IOCTL code: get the capture stats.

#define pBIOCSRTIMEOUT   7416
 IOCTL code: set the read timeout.

#define pBIOCSMODE   7412
 IOCTL code: set working mode.

#define pBIOCSWRITEREP   7413
 IOCTL code: set number of physical repetions of every packet written by the app.

#define pBIOCSMINTOCOPY   7414
 IOCTL code: set minimum amount of data in the kernel buffer that unlocks a read call.

#define pBIOCSETOID   2147483648
 IOCTL code: set an OID value.

#define pBIOCQUERYOID   2147483652
 IOCTL code: get an OID value.

#define pATTACHPROCESS   7117
 IOCTL code: attach a process to the driver. Used in Win9x only.

#define pDETACHPROCESS   7118
 IOCTL code: detach a process from the driver. Used in Win9x only.

#define pBIOCSETDUMPFILENAME   9029
 IOCTL code: set the name of a the file used by kernel dump mode.

#define pBIOCEVNAME   7415
 IOCTL code: get the name of the event that the driver signals when some data is present in the buffer.

#define pBIOCSENDPACKETSNOSYNC   9032
 IOCTL code: Send a buffer containing multiple packets to the network, ignoring the timestamps associated with the packets.

#define pBIOCSENDPACKETSSYNC   9033
 IOCTL code: Send a buffer containing multiple packets to the network, respecting the timestamps associated with the packets.

#define pBIOCSETDUMPLIMITS   9034
 IOCTL code: Set the dump file limits. See the PacketSetDumpLimits() function.

#define pBIOCISDUMPENDED   7411
 IOCTL code: Get the status of the kernel dump process. See the PacketIsDumpEnded() function.

#define pBIOCSTIMEZONE   7471
 IOCTL code: set time zone. Used in Win9x only.

#define Packet_ALIGNMENT   sizeof(int)
 Alignment macro. Defines the alignment size.

#define Packet_WORDALIGN(x)   (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
 Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.

#define NdisMediumNull   -1
#define NdisMediumCHDLC   -2
#define NdisMediumPPPSerial   -3
#define DOSNAMEPREFIX   TEXT("Packet_")
 Prefix added to the adapters device names to create the WinPcap devices.

#define MAX_LINK_NAME_LENGTH   64
#define NMAX_PACKET   65535
#define ADAPTER_NAME_LENGTH   256 + 12
 Maximum length for the name of an adapter. The value is the same used by the IP Helper API.

#define ADAPTER_DESC_LENGTH   128
 Maximum length for the description of an adapter. The value is the same used by the IP Helper API.

#define MAX_MAC_ADDR_LENGTH   8
 Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.

#define MAX_NETWORK_ADDRESSES   16
 Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.

#define INFO_FLAG_NDIS_ADAPTER   0
 Flag for ADAPTER_INFO: this is a traditional ndis adapter.

#define INFO_FLAG_NDISWAN_ADAPTER   1
 Flag for ADAPTER_INFO: this is a NdisWan adapter.

#define INFO_FLAG_DAG_CARD   2
 Flag for ADAPTER_INFO: this is a DAG card.

#define INFO_FLAG_DAG_FILE   6
 Flag for ADAPTER_INFO: this is a DAG file.

#define ODS(_x)
 Macro to print a debug string. The behavior differs depending on the debug level.

#define ODSEx(_x, _y)
 Macro to print debug data with the printf convention. The behavior differs depending on the debug level.


Typedefs

typedef NetType NetType
 Network type structure.

typedef npf_if_addr npf_if_addr
 Addresses of a network adapter.

typedef WAN_ADAPTER_INT WAN_ADAPTER
 Describes an opened wan (dialup, VPN...) network adapter using the NetMon API.

typedef WAN_ADAPTERPWAN_ADAPTER
 Describes an opened wan (dialup, VPN...) network adapter using the NetMon API.

typedef _ADAPTER_INFO ADAPTER_INFO
 Contains comprehensive information about a network adapter.

typedef _ADAPTER_INFOPADAPTER_INFO
 Contains comprehensive information about a network adapter.

typedef _ADAPTER ADAPTER
 Describes an opened network adapter.

typedef _ADAPTERLPADAPTER
 Describes an opened network adapter.

typedef _PACKET PACKET
 Structure that contains a group of packets coming from the driver.

typedef _PACKETLPPACKET
 Structure that contains a group of packets coming from the driver.

typedef _PACKET_OID_DATA PACKET_OID_DATA * PPACKET_OID_DATA

Functions

LONG PacketDumpRegistryKey (PCHAR KeyName, PCHAR FileName)
 Dumps a registry key to disk in text format. Uses regedit.


Detailed Description

Packet32.h contains the data structures and the definitions used by packet.dll. The file is used both by the Win9x and the WinNTx versions of packet.dll, and can be included by the applications that use the functions of this library

Define Documentation

#define ADAPTER_DESC_LENGTH   128
 

Maximum length for the description of an adapter. The value is the same used by the IP Helper API.

Definition at line 211 of file Packet32.h.

#define ADAPTER_NAME_LENGTH   256 + 12
 

Maximum length for the name of an adapter. The value is the same used by the IP Helper API.

Definition at line 210 of file Packet32.h.

Referenced by PacketOpenAdapter(), and PacketOpenAdapterNPF().

#define DOSNAMEPREFIX   TEXT("Packet_")
 

Prefix added to the adapters device names to create the WinPcap devices.

Definition at line 193 of file Packet32.h.

#define FILE_DEVICE_PROTOCOL   0x8000
 

Definition at line 61 of file Packet32.h.

#define INFO_FLAG_DAG_CARD   2
 

Flag for ADAPTER_INFO: this is a DAG card.

Definition at line 221 of file Packet32.h.

Referenced by PacketCloseAdapter(), PacketGetStats(), PacketGetStatsEx(), PacketOpenAdapter(), PacketSetBpf(), PacketSetBuff(), PacketSetMinToCopy(), PacketSetReadTimeout(), and PacketSetSnapLen().

#define INFO_FLAG_DAG_FILE   6
 

Flag for ADAPTER_INFO: this is a DAG file.

Definition at line 222 of file Packet32.h.

Referenced by PacketCloseAdapter().

#define INFO_FLAG_NDIS_ADAPTER   0
 

Flag for ADAPTER_INFO: this is a traditional ndis adapter.

Definition at line 219 of file Packet32.h.

Referenced by PacketIsDumpEnded(), PacketOpenAdapter(), PacketRequest(), PacketSendPacket(), PacketSendPackets(), PacketSetDumpLimits(), PacketSetDumpName(), PacketSetHwFilter(), and PacketSetNumWrites().

#define INFO_FLAG_NDISWAN_ADAPTER   1
 

Flag for ADAPTER_INFO: this is a NdisWan adapter.

Definition at line 220 of file Packet32.h.

Referenced by PacketOpenAdapter(), and PacketSetMinToCopy().

#define IOCTL_CLOSE   CTL_CODE(FILE_DEVICE_PROTOCOL, 8 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 69 of file Packet32.h.

#define IOCTL_OPEN   CTL_CODE(FILE_DEVICE_PROTOCOL, 7 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 68 of file Packet32.h.

#define IOCTL_PROTOCOL_MACNAME   CTL_CODE(FILE_DEVICE_PROTOCOL, 6 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 67 of file Packet32.h.

#define IOCTL_PROTOCOL_READ   CTL_CODE(FILE_DEVICE_PROTOCOL, 4 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 65 of file Packet32.h.

#define IOCTL_PROTOCOL_RESET   CTL_CODE(FILE_DEVICE_PROTOCOL, 3 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 64 of file Packet32.h.

Referenced by NPF_IoControl().

#define IOCTL_PROTOCOL_STATISTICS   CTL_CODE(FILE_DEVICE_PROTOCOL, 2 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 63 of file Packet32.h.

#define IOCTL_PROTOCOL_WRITE   CTL_CODE(FILE_DEVICE_PROTOCOL, 5 , METHOD_BUFFERED, FILE_ANY_ACCESS)
 

Definition at line 66 of file Packet32.h.

#define MAX_LINK_NAME_LENGTH   64
 

Definition at line 194 of file Packet32.h.

Referenced by PacketOpenAdapterNPF().

#define MAX_MAC_ADDR_LENGTH   8
 

Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.

Definition at line 212 of file Packet32.h.

#define MAX_NETWORK_ADDRESSES   16
 

Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.

Definition at line 213 of file Packet32.h.

Referenced by pcap_lookupnet().

#define NdisMediumCHDLC   -2
 

Definition at line 99 of file Packet32.h.

#define NdisMediumNull   -1
 

Definition at line 98 of file Packet32.h.

#define NdisMediumPPPSerial   -3
 

Definition at line 100 of file Packet32.h.

#define NMAX_PACKET   65535
 

Definition at line 195 of file Packet32.h.

#define ODS _x   ) 
 

Value:

{ \ FILE *f; \ f = fopen("winpcap_debug.txt", "a"); \ fprintf(f, "%s", _x); \ fclose(f); \ }
Macro to print a debug string. The behavior differs depending on the debug level.

Definition at line 317 of file Packet32.h.

Referenced by DllMain(), PacketAllocatePacket(), PacketGetAdapterNames(), PacketGetFileVersion(), PacketGetNetInfoEx(), PacketGetNetType(), PacketInstallDriver(), PacketIsDumpEnded(), PacketOpenAdapterNPF(), PacketSendPacket(), PacketSendPackets(), PacketSetDumpLimits(), PacketSetDumpName(), PacketSetHwFilter(), PacketSetMaxLookaheadsize(), PacketSetNumWrites(), and PacketSetReadEvt().

#define ODSEx _x,
_y   ) 
 

Value:

{ \ FILE *f; \ f = fopen("winpcap_debug.txt", "a"); \ fprintf(f, _x, _y); \ fclose(f); \ }
Macro to print debug data with the printf convention. The behavior differs depending on the debug level.

Definition at line 327 of file Packet32.h.

Referenced by PacketGetAdapterNames(), PacketGetFileVersion(), PacketInstallDriver(), PacketOpenAdapter(), PacketOpenAdapterNPF(), and PacketRequest().

#define Packet_ALIGNMENT   sizeof(int)
 

Alignment macro. Defines the alignment size.

Definition at line 93 of file Packet32.h.

#define PACKET_MODE_CAPT   0x0
 

Capture mode.

Definition at line 54 of file Packet32.h.

#define PACKET_MODE_DUMP   0x10
 

Dump mode.

Definition at line 57 of file Packet32.h.

Referenced by pcap_live_dump().

#define PACKET_MODE_MON   0x2
 

Monitoring mode.

Definition at line 56 of file Packet32.h.

#define PACKET_MODE_STAT   0x1
 

Statistical mode.

Definition at line 55 of file Packet32.h.

#define PACKET_MODE_STAT_DUMP   MODE_DUMP | MODE_STAT
 

Statistical dump Mode.

Definition at line 58 of file Packet32.h.

#define Packet_WORDALIGN  )     (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
 

Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.

Definition at line 95 of file Packet32.h.

Referenced by NPF_Read(), and PrintPackets().

#define pATTACHPROCESS   7117
 

IOCTL code: attach a process to the driver. Used in Win9x only.

Definition at line 80 of file Packet32.h.

#define pBIOCEVNAME   7415
 

IOCTL code: get the name of the event that the driver signals when some data is present in the buffer.

Definition at line 83 of file Packet32.h.

Referenced by PacketSetReadEvt().

#define pBIOCGSTATS   9031
 

IOCTL code: get the capture stats.

Definition at line 73 of file Packet32.h.

Referenced by PacketGetStats(), and PacketGetStatsEx().

#define pBIOCISDUMPENDED   7411
 

IOCTL code: Get the status of the kernel dump process. See the PacketIsDumpEnded() function.

Definition at line 87 of file Packet32.h.

Referenced by PacketIsDumpEnded().

#define pBIOCQUERYOID   2147483652
 

IOCTL code: get an OID value.

Definition at line 79 of file Packet32.h.

Referenced by PacketRequest().

#define pBIOCSENDPACKETSNOSYNC   9032
 

IOCTL code: Send a buffer containing multiple packets to the network, ignoring the timestamps associated with the packets.

Definition at line 84 of file Packet32.h.

#define pBIOCSENDPACKETSSYNC   9033
 

IOCTL code: Send a buffer containing multiple packets to the network, respecting the timestamps associated with the packets.

Definition at line 85 of file Packet32.h.

#define pBIOCSETBUFFERSIZE   9592
 

IOCTL code: set kernel buffer size.

Definition at line 71 of file Packet32.h.

Referenced by PacketSetBuff().

#define pBIOCSETDUMPFILENAME   9029
 

IOCTL code: set the name of a the file used by kernel dump mode.

Definition at line 82 of file Packet32.h.

Referenced by PacketSetDumpName().

#define pBIOCSETDUMPLIMITS   9034
 

IOCTL code: Set the dump file limits. See the PacketSetDumpLimits() function.

Definition at line 86 of file Packet32.h.

Referenced by PacketSetDumpLimits().

#define pBIOCSETF   9030
 

IOCTL code: set packet filtering program.

Definition at line 72 of file Packet32.h.

Referenced by PacketSetBpf().

#define pBIOCSETOID   2147483648
 

IOCTL code: set an OID value.

Definition at line 78 of file Packet32.h.

Referenced by PacketRequest().

#define pBIOCSMINTOCOPY   7414
 

IOCTL code: set minimum amount of data in the kernel buffer that unlocks a read call.

Definition at line 77 of file Packet32.h.

Referenced by PacketSetMinToCopy().

#define pBIOCSMODE   7412
 

IOCTL code: set working mode.

Definition at line 75 of file Packet32.h.

Referenced by PacketSetMode().

#define pBIOCSRTIMEOUT   7416
 

IOCTL code: set the read timeout.

Definition at line 74 of file Packet32.h.

Referenced by PacketSetReadTimeout().

#define pBIOCSTIMEZONE   7471
 

IOCTL code: set time zone. Used in Win9x only.

Definition at line 89 of file Packet32.h.

#define pBIOCSWRITEREP   7413
 

IOCTL code: set number of physical repetions of every packet written by the app.

Definition at line 76 of file Packet32.h.

Referenced by PacketSetNumWrites().

#define pDETACHPROCESS   7118
 

IOCTL code: detach a process from the driver. Used in Win9x only.

Definition at line 81 of file Packet32.h.


Typedef Documentation

typedef struct _ADAPTER ADAPTER
 

Describes an opened network adapter.

This structure is the most important for the functioning of packet.dll, but the great part of its fields should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters

Referenced by PacketOpenAdapterNPF().

typedef struct _ADAPTER_INFO ADAPTER_INFO
 

Contains comprehensive information about a network adapter.

This structure is filled with all the accessory information that the user can need about an adapter installed on his system.

typedef struct _ADAPTER * LPADAPTER
 

Describes an opened network adapter.

This structure is the most important for the functioning of packet.dll, but the great part of its fields should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters

typedef struct _PACKET * LPPACKET
 

Structure that contains a group of packets coming from the driver.

This structure defines the header associated with every packet delivered to the application.

typedef struct NetType NetType
 

Network type structure.

This structure is used by the PacketGetNetType() function to return information on the current adapter's type and speed.

typedef struct npf_if_addr npf_if_addr
 

Addresses of a network adapter.

This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with an adapter.

typedef struct _PACKET PACKET
 

Structure that contains a group of packets coming from the driver.

This structure defines the header associated with every packet delivered to the application.

Referenced by PacketAllocatePacket().

typedef struct _ADAPTER_INFO * PADAPTER_INFO
 

Contains comprehensive information about a network adapter.

This structure is filled with all the accessory information that the user can need about an adapter installed on his system.

typedef struct _PACKET_OID_DATA PACKET_OID_DATA* PPACKET_OID_DATA
 

Definition at line 306 of file Packet32.h.

Referenced by NPF_IoControl(), NPF_RequestComplete(), PacketSetHwFilter(), and PacketSetMaxLookaheadsize().

typedef WAN_ADAPTER* PWAN_ADAPTER
 

Describes an opened wan (dialup, VPN...) network adapter using the NetMon API.

Definition at line 217 of file Packet32.h.

typedef struct WAN_ADAPTER_INT WAN_ADAPTER
 

Describes an opened wan (dialup, VPN...) network adapter using the NetMon API.

Definition at line 216 of file Packet32.h.


Function Documentation

LONG PacketDumpRegistryKey PCHAR  KeyName,
PCHAR  FileName
 

Dumps a registry key to disk in text format. Uses regedit.

Parameters:
KeyName Name of the ket to dump. All its subkeys will be saved recursively.
FileName Name of the file that will contain the dump.
Returns:
If the function succeeds, the return value is nonzero.
For debugging purposes, we use this function to obtain some registry keys from the user's machine.

Let regedit do the dirt work for us

Definition at line 408 of file Packet32.c.

Referenced by DllMain().


documentation. Copyright (c) 2002-2003 Politecnico di Torino. All rights reserved.