{{>toc}} h1. 网络监控(防火墙)接口定义 |_. 接口 |_. 含义| |EbnftOpenDriver|获取驱动句柄.| |EbnftIpMonitorStop|关闭防火墙.| |EbnftIpMonitorAllow|开启防火墙,允许网络通信.| |EbnftIpMonitorBlock|开启防火墙,阻断网络通信.| |EbnftAddBlackRule|添加黑名单.| |EbnftDeleteBlackRule|删除黑名单.| |EbnftAddWhiteRule|添加白名单.| |EbnftDeleteWhiteRule|删除白名单.| |EbnftClearBlackRule|删除所有黑名单.| |EbnftClearWhiteRule|删除所有白名单.| |EbnftClearAllRule|删除所有黑白名单.| |EbnftQueryAllRules|获取白名单.| |GetIPAddrByIpAddString|把IP地址字符串转换成整型| h2. 获取驱动句柄 打开驱动获取驱动句柄,成功打开后的句柄利用CloseHandle(HANDLE hObject) 关闭。

HANDLE
EbnftOpenDriver(
);
|_. 返回值 |_. 含义| |HANDLE|驱动打开后的句柄.| h2. 关闭防火墙 关闭防火墙,使得所有网络都能够正常通信

BOOL
EbnftIpMonitorAllow(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义| |bDeviceHandle|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确关闭防火墙.| |FALSE |关闭防火墙发生错误. 利用GetLastError() 获取错误详细信息| h2. 开启防火墙,允许网络通信 开启网络IP监控防火墙功能,并使得所有黑白名单之外的IP地址都能够正常通信

BOOL
EbnftIpMonitorStop(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义| |bDeviceHandle|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确开启防火墙.| |FALSE |开启防火墙发生错误. 利用GetLastError() 获取错误详细信息| h2. 开启防火墙,阻断网络通信 开启网络IP监控防火墙功能,并阻断黑白名单之外的通信

BOOL
EbnftIpMonitorBlock(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义| |bDeviceHandle|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确开启防火墙.| |FALSE |开启防火墙发生错误. 利用GetLastError() 获取错误详细信息| h2. 获取防火墙状态 获取当前防火墙是否开启,获取防火墙开启时状态

BOOL 
EbnftIpMonitorQuery(
	_In_ HANDLE bDeviceHandle, 
	_Out_ PINT status
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |/4. status|传出|当前防火墙状态.| |IpMonitorNone = 0 |防火墙关闭状态.| |IpMonitorAllow = 1|防火墙打开,允许网络通信.| |IpMonitorBlock = 2|防火墙关闭,阻断网络通信.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确开启防火墙.| |FALSE |获取防火墙状态发生错误. 利用GetLastError() 获取错误详细信息| h2. 添加黑名单 把IP区间或独立IP地址添加到黑名单,阻断此ip通信

BOOL
EbnftAddBlackRule(
	_In_ HANDLE bDeviceHandle,
	_In_ UINT32 blackAddr1,
	_In_ UINT32 blackAddr2
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |blackAddr1|传入|IP区间开始IP / 独立IP地址.| |blackAddr2|传入|IP区间结束IP / 为0时代表独立IP.| 其中:整形IP地址结构为 xxx1 << 24 |xxx2 << 16 |xxx3 << 8 |xxx4 <假定IP字符串:xxx1.xxx2.xxx3.xxx4> |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确添加黑名单.| |FALSE |添加黑名单失败. 利用GetLastError() 获取错误详细信息| |_. 错误值 |_. 含义| |0|无错误.| |0xE00B0001L|当前黑名单中已经存在相同IP地址/区间 判断标准为 相同的IP地址(区间)| h2. 删除黑名单 把IP区间或独立IP地址从当前黑名单中删除

BOOL
EbnftDeleteBlackRule(
	_In_ HANDLE bDeviceHandle,
	_In_ UINT32 blackAddr1,
	_In_ UINT32 blackAddr2
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |blackAddr1|传入|要删除的IP区间开始IP / 独立IP地址.| |blackAddr2|传入|要删除的IP区间结束IP / 为0时代表独立IP.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确删除黑名单.| |FALSE |删除黑名单失败. 利用GetLastError() 获取错误详细信息| |_. 错误值 |_. 含义| |0|无错误.| |0xE00B0003L|当前黑名单无此IP地址(区间)| h2. 添加白名单 把IP区间或独立IP地址添加到黑名单列表中

BOOL
EbnftAddWhiteRule(
	_In_ HANDLE bDeviceHandle,
	_In_ UINT32 whiteAddr1,
	_In_ UINT32 whiteAddr2
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |whiteAddr1|传入|要添加的IP区间开始IP / 独立IP地址.| |whiteAddr2|传入|要添加的IP区间结束IP / 为0时代表独立IP.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确添加白名单.| |FALSE |添加白名单失败. 利用GetLastError() 获取错误详细信息| |_. 错误值 |_. 含义| |0|无错误.| |0xE00B0001L|当前已存在相同IP(区间)的白名单| h2. 删除白名单 把IP区间或独立IP地址从黑名单列表中删除

BOOL
EbnftDeleteWhiteRule(
	_In_ HANDLE bDeviceHandle,
	_In_ UINT32 whiteAddr1,
	_In_ UINT32 whiteAddr2
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |whiteAddr1|传入|要删除的IP区间开始IP / 独立IP地址.| |whiteAddr2|传入|要删除的IP区间结束IP / 为0时代表独立IP.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确删除白名单.| |FALSE |删除白名单失败. 利用GetLastError() 获取错误详细信息| |_. 错误值 |_. 含义| |0|无错误.| |0xE00B0003L|不存在当前IP(区间)白名单| h2. 删除所有黑名单 删除当前所有黑名单

BOOL
EbnftClearBlackRule(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确删除黑名单.| |FALSE |删除黑名单失败. 利用GetLastError() 获取错误详细信息| h2. 删除所有白名单 删除当前所有白名单

BOOL
EbnftClearWhiteRule(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确删除白名单.| |FALSE |删除黑名单失败. 利用GetLastError() 获取错误详细信息| h2. 删除所有黑白名单 删除当前所有黑白名单

BOOL
EbnftClearAllRule(
	_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义| |bDeviceHandle|传入|驱动句柄.| |_. 返回值类型 |返回值|_. 含义| |/2. BOOL|TRUE|正确删除所有黑白名单.| |FALSE |删除黑名单失败. 利用GetLastError() 获取错误详细信息| h2. 把IP地址字符串转换成整型 把类型为xxx1.xxx2.xxx3.xxx4的IP字符串转换成IP整形 xxx1 << 24 |xxx2 << 16 |xxx3 << 8 |xxx4

BOOL
GetIPAddrByIpAddString(
	_In_ IP_ADDRESS_STRING bIpAddrString,
	_Inout_ PINT32 bIpAddr
);
|_. 参数 |传入/传出|_. 含义| |bIpAddrString|传入|字符串类型IP地址.| |bIpAddr|传出|整形IP地址.| |_. 返回值类型 |返回值|_. 含义| | BOOL|TRUE|IP地址被正确转换.|