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

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

?? disp_ev.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: disp_ev.c,v 1.5 2003/07/14 12:12:36 dev Exp $

/*
* This file contains TDI_SET_EVENT_HANDLER handler
*/

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

#include "conn_state.h"
#include "dispatch.h"
#include "events.h"
#include "memtrack.h"
#include "obj_tbl.h"
#include "sids.h"
#include "tdi_fw.h"

int	tdi_set_event_handler(PIRP irp, PIO_STACK_LOCATION irps, struct completion *completion)
{
	PTDI_REQUEST_KERNEL_SET_EVENT r = (PTDI_REQUEST_KERNEL_SET_EVENT)&irps->Parameters;
	NTSTATUS status;
	struct ot_entry *ote_addr = NULL;
	KIRQL irql;
	int result = FILTER_DENY;
	TDI_EVENT_CONTEXT *ctx;
	
	KdPrint(("[tdi_fw] tdi_set_event_handler: [%s] devobj 0x%x; addrobj 0x%x; EventType: %d\n",
		r->EventHandler ? "(+)ADD" : "(-)REMOVE",
		irps->DeviceObject,
		irps->FileObject,
		r->EventType));
	
	ote_addr = ot_find_fileobj(irps->FileObject, &irql);
	if (ote_addr == NULL)
		{
		KdPrint(("[tdi_fw] tdi_set_event_handler: ot_find_fileobj(0x%x)\n", irps->FileObject));
		if (r->EventHandler == NULL)
			{
			// for fileobjects loaded earlier than our driver allow removing
			result = FILTER_ALLOW;
			}
		goto done;
		}
	
	if (r->EventType < 0 || r->EventType >= MAX_EVENT)
		{
		KdPrint(("[tdi_fw] tdi_set_event_handler: unknown EventType %d!\n", r->EventType));
		result = FILTER_ALLOW;
		goto done;
		}
	
	ctx = &ote_addr->ctx[r->EventType];
	
	if (r->EventHandler != NULL)
		{
		/* add EventHandler */
		int i;
		
		for (i = 0; g_tdi_event_handlers[i].event != (ULONG)-1; i++)
			if (g_tdi_event_handlers[i].event == r->EventType)
			break;
		
		if (g_tdi_event_handlers[i].event == (ULONG)-1)
			{
			KdPrint(("[tdi_fw] tdi_set_event_handler: unknown EventType %d!\n", r->EventType));
			result = FILTER_ALLOW;
			goto done;
			}
		
		ctx->old_handler = r->EventHandler;
		ctx->old_context = r->EventContext;
		
		if (g_tdi_event_handlers[i].handler != NULL)
			{
			r->EventHandler = g_tdi_event_handlers[i].handler;
			r->EventContext = ctx;
			}
		else	{
			r->EventHandler = NULL;
			r->EventContext = NULL;
			}
		
		KdPrint(("[tdi_fw] tdi_set_event_handler: old_handler 0x%x; old_context 0x%x\n",
			r->EventHandler, r->EventContext));
		
		}
	else	{
		/* remove EventHandler */
		ctx->old_handler = NULL;
		ctx->old_context = NULL;
		}
	
	// change LISTEN state
	if (r->EventType == TDI_EVENT_CONNECT)
		{
		TA_ADDRESS *local_addr;
		
		if (r->EventHandler != NULL)
			{
			// add "LISTEN" info
			status = add_listen(ote_addr);
			if (status != STATUS_SUCCESS)
				{
				KdPrint(("[tdi_fw] tdi_set_event_handler: add_listen: 0x%x!\n", status));
				goto done;
				}
			}
		else if (ote_addr->listen_entry != NULL)
			{
			// remove "LISTEN" info
			del_listen_obj(ote_addr->listen_entry, FALSE);
			
			ote_addr->listen_entry = NULL;
			}
		
		// log it if address is not 127.0.0.1
		local_addr = (TA_ADDRESS *)(ote_addr->local_addr);
		if (ntohl(((TDI_ADDRESS_IP *)(local_addr->Address))->in_addr) != 0x7f000001)
			{
			struct flt_request request;
			
			memset(&request, 0, sizeof(request));
			
			request.struct_size = sizeof(request);
			
			request.type = (r->EventHandler != NULL) ? TYPE_LISTEN : TYPE_NOT_LISTEN;
			request.proto = IPPROTO_TCP;	// correct?
			
			if (r->EventHandler != NULL)
				{
				// for removing event handler ProcessNotifyProc can be already called
				request.pid = (ULONG)PsGetCurrentProcessId();
				if (request.pid == 0)
					{
					// avoid idle process pid (XXX do we need this?)
					request.pid = ote_addr->pid;
					}
				}
			else
				request.pid = (ULONG)-1;
			
			// get user SID & attributes (can't call get_current_sid_a at DISPATCH_LEVEL)
			if ((request.sid_a = copy_sid_a(ote_addr->sid_a, ote_addr->sid_a_size)) != NULL)
				request.sid_a_size = ote_addr->sid_a_size;
			
			memcpy(&request.addr.from, &local_addr->AddressType, sizeof(struct sockaddr));
			request.addr.len = sizeof(struct sockaddr_in);
			
			log_request(&request);
			
			if (request.sid_a != NULL)
				free(request.sid_a);
			}
		}
	
	result = FILTER_ALLOW;
	done:
	// cleanup
	if (ote_addr != NULL)
		KeReleaseSpinLock(&g_ot_hash_guard, irql);
	
	return result;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产69精品一区二区亚洲孕妇| 777精品伊人久久久久大香线蕉| 91偷拍与自偷拍精品| 7777精品伊人久久久大香线蕉 | 日韩久久精品一区| 亚洲主播在线观看| 国产成人一区在线| 欧美一级欧美三级在线观看| 专区另类欧美日韩| 国产精品99久久久久| 日韩精品一区二区三区视频播放 | 中文字幕一区在线观看视频| 久久精品久久综合| 91精品国产黑色紧身裤美女| 一区二区三区日韩欧美| av一本久道久久综合久久鬼色| 精品乱码亚洲一区二区不卡| 日韩中文字幕麻豆| 欧美亚洲日本国产| 亚洲欧美福利一区二区| 成人18精品视频| 中文字幕国产一区二区| 久久99九九99精品| 精品入口麻豆88视频| 蜜臀久久99精品久久久久宅男| 欧美肥胖老妇做爰| 亚洲大片精品永久免费| 欧美体内she精视频| 亚洲午夜久久久久| 欧美日韩一级黄| 亚洲成人手机在线| 91精品欧美一区二区三区综合在| 午夜精品一区二区三区免费视频| 欧美在线综合视频| 亚洲v精品v日韩v欧美v专区| 欧美日韩国产一二三| 婷婷综合五月天| 91麻豆精品国产91久久久久久久久 | 一区二区免费看| 91久久精品一区二区三| 一区二区三区在线视频观看| 在线欧美一区二区| 天天综合色天天综合| 欧美一区二区三区小说| 激情久久久久久久久久久久久久久久| 337p日本欧洲亚洲大胆精品| 国模少妇一区二区三区| 国产午夜一区二区三区| 色综合婷婷久久| 午夜久久久影院| 久久综合999| 91免费在线播放| 丝袜亚洲另类欧美| 久久久一区二区三区| 波多野结衣91| 日韩精品三区四区| 久久久99精品免费观看| 一本色道久久综合亚洲aⅴ蜜桃| 五月婷婷激情综合| 久久亚洲一级片| 91老师片黄在线观看| 丝袜诱惑亚洲看片| 中文字幕av在线一区二区三区| 色综合天天综合色综合av| 日韩精品一二三区| 国产精品久久久久7777按摩| 欧美午夜精品一区| 国产a精品视频| 亚洲地区一二三色| 国产精品久久久久久久久快鸭| 欧美猛男男办公室激情| 国产精品99久久久久久久女警| 一区2区3区在线看| 国产午夜精品福利| 欧美日韩国产电影| 成人蜜臀av电影| 美女视频黄免费的久久| 亚洲激情在线激情| 久久久久久久久久久久久久久99| 欧美在线观看一二区| 国产精品18久久久久久vr| 亚洲最大成人网4388xx| 国产亚洲精品精华液| 欧美丰满高潮xxxx喷水动漫| www.欧美.com| 国模少妇一区二区三区| 亚洲成人av电影| 最近中文字幕一区二区三区| 久久美女艺术照精彩视频福利播放 | 亚洲精品一区二区三区在线观看 | 99久久精品国产毛片| 久久se精品一区精品二区| 亚洲自拍欧美精品| 亚洲色大成网站www久久九九| 精品国产亚洲在线| 91精品国产综合久久久久久久 | av高清久久久| 国产福利91精品一区二区三区| 午夜视频一区在线观看| 亚洲视频在线观看三级| 欧美激情综合五月色丁香| 欧美精品一区二区三区蜜臀| 欧美男同性恋视频网站| 欧美在线视频你懂得| 色综合久久综合中文综合网| 成人av第一页| av在线不卡电影| www.综合网.com| 9色porny自拍视频一区二区| 高潮精品一区videoshd| 国产麻豆一精品一av一免费| 麻豆国产欧美一区二区三区| 日本成人在线不卡视频| 婷婷六月综合亚洲| 亚洲高清免费在线| 日韩精品电影在线| 五月天丁香久久| 青青草原综合久久大伊人精品| 婷婷久久综合九色国产成人 | 91精品国产一区二区三区| 欧美日韩电影在线播放| 6080国产精品一区二区| 欧美狂野另类xxxxoooo| 欧美日韩免费不卡视频一区二区三区| 欧美天天综合网| 欧美一区二区福利视频| 精品国产百合女同互慰| 26uuu亚洲综合色欧美| 久久精品一区二区三区不卡 | 久久久国产一区二区三区四区小说 | 自拍偷拍欧美精品| 亚洲成人高清在线| 蜜臀av在线播放一区二区三区| 国产一区久久久| 99视频有精品| 6080yy午夜一二三区久久| 精品美女在线播放| 中文字幕制服丝袜成人av| 亚洲精品国产精华液| 婷婷中文字幕综合| 国产高清精品在线| 日本道在线观看一区二区| 91麻豆精品国产91久久久 | 日韩视频免费观看高清完整版| 欧美变态tickling挠脚心| 久久久三级国产网站| 亚洲色图.com| 美日韩一区二区三区| 国产成人午夜精品影院观看视频 | 三级欧美在线一区| 国产不卡视频一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 精品视频在线免费看| 日韩精品一区二区在线观看| 中文字幕日本不卡| 日韩国产精品91| 成a人片国产精品| 欧美一区二区三区视频在线| 国产精品视频一区二区三区不卡| 亚洲成a人v欧美综合天堂下载| 国产伦精一区二区三区| 在线观看视频91| 久久精品人人做人人爽97 | 一区二区三区精品久久久| 激情综合网最新| 精品视频一区二区三区免费| 精品福利一二区| 亚洲午夜免费视频| 成人avav在线| 欧美精品一区二区在线观看| 亚洲精品成人精品456| 国产九九视频一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 国产视频一区在线观看| 亚洲成人av一区二区三区| 国产91精品在线观看| 精品日韩一区二区| 首页综合国产亚洲丝袜| 色综合久久久网| 国产精品国产自产拍高清av| 美女国产一区二区三区| 欧美综合色免费| 中文字幕在线观看不卡视频| 国内精品视频一区二区三区八戒 | 久久久久久久久久久黄色| 免费看精品久久片| 777午夜精品视频在线播放| 亚洲免费大片在线观看| 色综合一区二区| 1024成人网色www| 成人av在线观| 国产精品家庭影院| 99久久免费国产| 中文字幕日韩精品一区| 99精品视频在线观看免费| 国产精品视频线看| 丁香啪啪综合成人亚洲小说| 国产三级精品三级在线专区| 国产寡妇亲子伦一区二区| 中文成人综合网|