// FireWallDll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "windows.h"
#include "winsock2.h"
#include <stdio.h>
#include <ws2spi.h>
#include <tchar.h>
#include <string.h>
#include <sporder.h>
#include "Head.h"
#pragma comment(lib,"ws2_32.lib")
LPWSAPROTOCOL_INFOW protoinfo;
unsigned long protoinfosize;
int totalprotos;
WSPPROC_TABLE nextproctable;
GUID TCPguid={0x4d1e91fd,0x116a,0x44aa,{0x8f,0xd4,0x1d,0x2c,0xf2,0x7b,0xd9,0xa9}};
GUID TCPchainguid={0x4d1e91fd,0x116a,0x44aa,{0x8f,0xd4,0x1d,0x2c,0xf2,0x7b,0xd9,0xa9}};
//获取一个端口列表条目,放在Item中
BOOL GetPortListItem(int i,PORTLISTITEM *Item)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
if(i<PortListSize)
{
*Item = PortList[i];
LeaveCriticalSection(&RWSCriticalSection);
return TRUE;
}
LeaveCriticalSection(&RWSCriticalSection);
return FALSE;
}
//添加一个端口条目
BOOL AddPortListItem(PORTLISTITEM Item)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
PortList[PortListSize] = Item;
PortListSize++;
//离开临界区
LeaveCriticalSection(&RWSCriticalSection);
return TRUE;
}
//删除一个端口条目
BOOL DeletePortListItem(int i)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
if(i<PortListSize)
{
for(int j=PortListSize-1; j>i ;j--)
{
PortList[j-1] = PortList[j];
}
PortListSize--;
//离开临界区
LeaveCriticalSection(&RWSCriticalSection);
return TRUE;
}
LeaveCriticalSection(&RWSCriticalSection);
return FALSE;
}
//
//获取一个IP条目
BOOL GetIpListItem(int i,IPLISTITEM *Item)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
if(i < IpListSize)
{
*Item = IpList[i];
//离开临界区
LeaveCriticalSection(&RWSCriticalSection);
return TRUE;
}
//离开临界区
LeaveCriticalSection(&RWSCriticalSection);
return FALSE;
}
//添加一个IP条目
BOOL AddIpListItem(IPLISTITEM Item)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
IpList[IpListSize] = Item;
IpListSize++;
//离开临界区
LeaveCriticalSection(&RWSCriticalSection);
return TRUE;
}
//删除一个IP条目
BOOL DeleteIpListItem(int i)
{
//进入临界区
EnterCriticalSection(&RWSCriticalSection);
if(i<IpListSize)
{
for(int j = IpListSize-1;j>i;j--)
{
IpList[j-1] = IpList[j];
}
IpListSize--;
//离开临界区
LeaveCriticalSection(&RWSCri
SPI防火墙设计之DLL的编写
最新推荐文章于 2021-04-21 16:49:19 发布