亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipc.c

?? 開源的防火墻代碼
?? C
字號:
/* Copyright (c) 2002-2005 Vladislav Goncharov.
*
* Redistribution and use in source forms, with and without modification,
* are permitted provided that this entire comment appears intact.
*
* Redistribution in binary form may occur without any restrictions.
*
* This software is provided ``AS IS'' without any warranties of any kind.
*/

// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs)
//
// $Id: ipc.c,v 1.6 2003/09/04 15:20:09 dev Exp $

/*
* This file contain replaced TDI_EVENT_CONNECT handler
*/

#include <ntddk.h>
#include <tdikrnl.h>
#include "sock.h"

#include "conn_state.h"
#include "filter.h"
#include "ipc.h"
#include "sids.h"
#include "tdi_fw.h"

static void		get_traffic_counters(unsigned __int64 *counters);

NTSTATUS	process_nfo_request(ULONG code, char *buf, ULONG *buf_len, ULONG buf_size)
{
	NTSTATUS status;
	ULONG len = *buf_len;
	*buf_len = 0;
	
	switch (code)
		{
		
		case IOCTL_CMD_ENUM_LISTEN:
			// enum listening endpoints
			
			if (buf_size < sizeof(struct listen_nfo) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = enum_listen((struct listen_nfo *)buf, buf_len, buf_size);
			break;
			
		case IOCTL_CMD_ENUM_TCP_CONN:
			// enum TCP connections
			
			if (buf_size < sizeof(struct tcp_conn_nfo) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = enum_tcp_conn((struct tcp_conn_nfo *)buf, buf_len, buf_size);
			break;
			
		case IOCTL_CMD_GET_COUNTERS:
			// get traffic counters
			
			if (buf_size < sizeof(g_traffic))
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			get_traffic_counters((unsigned __int64 *)buf);
			
			*buf_len = sizeof(g_traffic);
			status = STATUS_SUCCESS;
			break;
			
		default:
			status = STATUS_NOT_SUPPORTED;
		}
	
	return status;
}

NTSTATUS	process_request(ULONG code, char *buf, ULONG *buf_len, ULONG buf_size)
{
	NTSTATUS status;
	ULONG len = *buf_len;
	*buf_len = 0;
	
	switch (code)
		{
		
		case IOCTL_CMD_GETREQUEST:
			// get data for logging
			
			if (buf_size < sizeof(struct flt_request) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			*buf_len = get_request(buf, buf_size);
			status = STATUS_SUCCESS;
			break;
			
		case IOCTL_CMD_CLEARCHAIN:
			// clear rules chain #i
			
			if (len != sizeof(int) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = clear_flt_chain(*(int *)buf);
			break;
			
		case IOCTL_CMD_APPENDRULE:
			// append rule to chain #i
			
			if (len != sizeof(struct flt_rule) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = add_flt_rule(((struct flt_rule *)buf)->chain, (struct flt_rule *)buf);
			break;
			
		case IOCTL_CMD_SETCHAINPNAME:
			// set chain #i process name
			
			if (len < sizeof(int) + sizeof(char) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			if (buf[len - 1] != '\0')
				{
				status = STATUS_INVALID_PARAMETER;	// string must be zero-terminated
				break;
				}
			
			status = set_chain_pname(*(int *)buf, buf + sizeof(int));
			break;
			
		case IOCTL_CMD_SETPNAME:
			// set process name for pid
			
			if (len < sizeof(ULONG) + sizeof(char) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			if (buf[len - 1] != '\0')
				{
				status = STATUS_INVALID_PARAMETER;	// string must be zero-terminated
				break;
				}
			
			status = set_pid_pname(*(ULONG *)buf, buf + sizeof(ULONG));
			break;
			
		case IOCTL_CMD_ACTIVATECHAIN:
			// active rules chain #i
			
			if (len != sizeof(int) || buf == NULL)
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = activate_flt_chain(*(int *)buf);
			break;
			
		case IOCTL_CMD_SET_SIDS:
			// set SIDs array
			
			if (len < sizeof(ULONG))
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			status = set_sid_list(buf, len);
			break;
			
		case IOCTL_CMD_GET_COUNTERS:
			// get traffic counters
			
			if (buf_size < sizeof(g_traffic))
				{
				status = STATUS_INFO_LENGTH_MISMATCH;
				break;
				}
			
			get_traffic_counters((unsigned __int64 *)buf);
			
			*buf_len = sizeof(g_traffic);
			status = STATUS_SUCCESS;
			break;
			
		default:
			status = STATUS_NOT_SUPPORTED;
		}
	
	return status;
}

void	get_traffic_counters(unsigned __int64 *counters)
{
	KIRQL irql;
	
	KeAcquireSpinLock(&g_traffic_guard, &irql);
	memcpy(counters, g_traffic, sizeof(g_traffic));
	KeReleaseSpinLock(&g_traffic_guard, irql);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久激情综合网| 欧美亚男人的天堂| 韩国欧美国产1区| 秋霞成人午夜伦在线观看| 午夜精品福利一区二区三区av| 亚洲天堂精品视频| 国产精品国产自产拍高清av王其 | 精品久久人人做人人爱| 欧美日韩黄色影视| 9191成人精品久久| 日韩一区二区三区高清免费看看| 日韩色在线观看| 日韩精品一区二区三区在线播放| 欧美大片在线观看| 亚洲精品一区二区三区精华液| 日韩一区二区三区四区五区六区| 91精品国产乱| 精品久久久久久久一区二区蜜臀| 精品久久久久久久久久久久包黑料 | 成人伦理片在线| av综合在线播放| 在线亚洲一区二区| 欧美日韩亚洲综合在线| 91.成人天堂一区| 亚洲妇女屁股眼交7| 亚洲成在人线在线播放| 美国十次综合导航| 国产在线精品一区二区不卡了| 国产精品一品二品| 成人污视频在线观看| 色诱视频网站一区| 欧美色倩网站大全免费| 欧美一级片免费看| 国产日产欧美一区| 亚洲欧美激情小说另类| 婷婷成人激情在线网| 精品一区二区免费视频| av一区二区三区黑人| 欧美伊人久久久久久久久影院| 欧美一区二区免费视频| 国产亚洲精品福利| 一区二区在线看| 免费看精品久久片| 99热这里都是精品| 欧美人xxxx| 国产精品亲子乱子伦xxxx裸| 亚洲第一精品在线| 国产成人综合亚洲网站| 在线看日本不卡| 久久久亚洲午夜电影| 亚洲一区成人在线| 国产一区二区三区在线观看精品 | 亚洲综合一区二区三区| 免费高清视频精品| 97久久超碰精品国产| 欧美一激情一区二区三区| 中文乱码免费一区二区| 亚洲一区二区三区美女| 国产黑丝在线一区二区三区| 欧美图片一区二区三区| 国产欧美日韩精品在线| 奇米一区二区三区| 91浏览器在线视频| 国产欧美日韩在线| 污片在线观看一区二区| 99久久精品国产导航| www精品美女久久久tv| 一二三四社区欧美黄| 成人妖精视频yjsp地址| 91精品国产欧美一区二区18| 亚洲男人天堂一区| 高潮精品一区videoshd| 日韩一区国产二区欧美三区| 亚洲黄色在线视频| 波波电影院一区二区三区| 91精品久久久久久久99蜜桃| 一区二区三区四区乱视频| 国产成人在线看| 欧美一级久久久久久久大片| 一区二区三区久久| 懂色av一区二区三区免费看| 欧美岛国在线观看| 日本中文字幕不卡| 欧美日韩在线直播| 亚洲乱码国产乱码精品精的特点| 国产成人在线看| 26uuu精品一区二区 | 在线观看一区日韩| ㊣最新国产の精品bt伙计久久| 国产一区二区伦理| 日韩免费观看高清完整版| 婷婷国产v国产偷v亚洲高清| 欧美视频一区二区三区在线观看| 亚洲色大成网站www久久九九| 国产99一区视频免费| 久久精品在这里| 国产在线视频精品一区| 337p粉嫩大胆色噜噜噜噜亚洲| 蜜桃av噜噜一区| 欧美一区二区播放| 免费观看日韩av| 欧美成人免费网站| 韩国精品主播一区二区在线观看| 欧美一级理论片| 久久99热这里只有精品| 精品区一区二区| 国产精品综合视频| 国产欧美一区二区在线观看| 国产69精品久久777的优势| 国产色产综合产在线视频| 成人综合在线视频| 国产精品亲子乱子伦xxxx裸| 93久久精品日日躁夜夜躁欧美| 国产精品久久久久久久久久久免费看 | 男女视频一区二区| 日韩午夜中文字幕| 国产一区二区三区免费播放| 久久先锋影音av| 国产999精品久久久久久绿帽| 国产欧美日韩麻豆91| 波多野结衣精品在线| 亚洲另类在线一区| 欧美日本一道本| 精品一区二区三区久久| 国产偷v国产偷v亚洲高清| 99精品欧美一区二区三区综合在线| 中文字幕中文乱码欧美一区二区 | 日本精品视频一区二区三区| 亚洲自拍偷拍综合| 日韩美女天天操| 粉嫩绯色av一区二区在线观看| 亚洲色图视频网站| 91精品国模一区二区三区| 国产在线国偷精品产拍免费yy| 国产欧美一区二区三区在线看蜜臀 | 中文字幕一区二区三区四区不卡| 91性感美女视频| 日韩影院精彩在线| 26uuu成人网一区二区三区| 成人久久视频在线观看| 亚洲午夜视频在线| 欧美www视频| 91麻豆精品秘密| 日韩精品五月天| 久久免费的精品国产v∧| 一本大道久久a久久综合婷婷| 日韩电影在线一区二区三区| 久久久久成人黄色影片| 色综合久久久久综合| 日韩高清不卡一区二区三区| 中文字幕精品—区二区四季| 精品视频在线免费观看| 国产成人综合网站| 五月激情综合网| 中文字幕欧美日韩一区| 欧美日韩国产片| 国产99精品视频| 日韩精品欧美精品| 亚洲桃色在线一区| 26uuu色噜噜精品一区二区| 日本乱码高清不卡字幕| 国产精品一级黄| 亚洲国产精品久久人人爱蜜臀| 国产片一区二区三区| 欧美一区二区精品久久911| www.欧美.com| 精品亚洲国内自在自线福利| 亚洲一区二区视频| 国产欧美日韩一区二区三区在线观看 | 欧美日韩精品福利| www.欧美日韩| 国产成人亚洲综合a∨婷婷| 五月天久久比比资源色| 亚洲欧美另类小说视频| 国产亚洲欧美一级| 欧美一区二区观看视频| 91福利在线看| 国产成人自拍高清视频在线免费播放| 亚洲成a人片综合在线| 国产精品夫妻自拍| 国产午夜精品久久久久久久| 日韩三级视频在线观看| 欧美日韩在线三区| 99久久综合国产精品| 国产一区二区日韩精品| 蜜臀a∨国产成人精品| 亚洲午夜久久久久久久久电影院| 国产精品电影院| 欧美国产日产图区| 久久久精品黄色| 日韩欧美不卡在线观看视频| 欧美日韩免费电影| 欧美性大战久久久| 91片黄在线观看| av一区二区三区| 成人白浆超碰人人人人| 成人网在线播放| 国产不卡视频在线观看| 国产精品综合一区二区三区| 韩国三级电影一区二区|