540d550a38
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h, miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h, ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h, netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h, ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h, storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h, upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h, winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h, xfilter.h): Change comment to refer w32api package, not MinGW.
82 lines
1.9 KiB
C
82 lines
1.9 KiB
C
/*
|
|
* pfhook.h
|
|
*
|
|
* Packet filter API
|
|
*
|
|
* This file is part of the w32api package.
|
|
*
|
|
* Contributors:
|
|
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef __PFHOOK_H
|
|
#define __PFHOOK_H
|
|
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#pragma pack(push,4)
|
|
|
|
#include "ntddk.h"
|
|
|
|
|
|
#define DD_IPFLTRDRVR_DEVICE_NAME L"\\Device\\IPFILTERDRIVER"
|
|
|
|
#define INVALID_PF_IF_INDEX 0xffffffff
|
|
#define ZERO_PF_IP_ADDR 0
|
|
|
|
typedef ULONG IPAddr;
|
|
|
|
typedef enum _PF_FORWARD_ACTION {
|
|
PF_FORWARD = 0,
|
|
PF_DROP = 1,
|
|
PF_PASS = 2,
|
|
PF_ICMP_ON_DROP = 3
|
|
} PF_FORWARD_ACTION;
|
|
|
|
typedef PF_FORWARD_ACTION STDCALL
|
|
(*PacketFilterExtensionPtr)(
|
|
IN unsigned char *PacketHeader,
|
|
IN unsigned char *Packet,
|
|
IN unsigned int PacketLength,
|
|
IN unsigned int RecvInterfaceIndex,
|
|
IN unsigned int SendInterfaceIndex,
|
|
IN IPAddr RecvLinkNextHop,
|
|
IN IPAddr SendLinkNextHop);
|
|
|
|
typedef struct _PF_SET_EXTENSION_HOOK_INFO {
|
|
PacketFilterExtensionPtr ExtensionPointer;
|
|
} PF_SET_EXTENSION_HOOK_INFO, *PPF_SET_EXTENSION_HOOK_INFO;
|
|
|
|
#define FSCTL_IPFLTRDRVR_BASE FILE_DEVICE_NETWORK
|
|
|
|
#define _IPFLTRDRVR_CTL_CODE(function, method, access) \
|
|
CTL_CODE(FSCTL_IPFLTRDRVR_BASE, function, method, access)
|
|
|
|
#define IOCTL_PF_SET_EXTENSION_POINTER \
|
|
_IPFLTRDRVR_CTL_CODE(22, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
|
|
|
#pragma pack(pop)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __PFHOOK_H */
|