資源簡介
用PacketFilterExtensionPtr實現的防火墻

代碼片段和文件信息
/*
??DrvFltIp.C
??Author:?your?name
??Last?Updated:?2001-01-01/0101
??This?framework?is?generated?by?QuickSYS.
*/
#include?
#include?
#include?
#include?
#include?
#include?“DrvFltIp.h“
#if?DBG
#define?dprintf?DbgPrint
#else
#define?dprintf(x)
#endif
NTSTATUS?DrvDispatch(IN?PDEVICE_object?Deviceobject?IN?PIRP?Irp);
VOID?DrvUnload(IN?PDRIVER_object?Driverobject);
NTSTATUS?SetFilterFunction(PacketFilterExtensionPtr?filterFunction);
NTSTATUS?AddFilterToList(IPFilter?*pf);
void?ClearFilterList(void);
PF_FORWARD_ACTION?cbFilterFunction(IN?unsigned?char?*PacketHeaderIN?unsigned?char?*Packet?IN?unsigned?int?PacketLength?IN?unsigned?int?RecvInterfaceIndex?IN?unsigned?int?SendInterfaceIndex?IN?unsigned?long?RecvlinkNextHop?IN?unsigned?long?SendlinkNextHop);
#define?NT_DEVICE_NAME?L“\\Device\\DrvFltIp“
#define?DOS_DEVICE_NAME?L“\\DosDevices\\DrvFltIp“
struct?filterList?*first?=?NULL;
struct?filterList?*last?=?NULL;
/*++
Routine?Description:
????Installable?driver?initialization?entry?point.
????This?entry?point?is?called?directly?by?the?I/O?system.
Arguments:
????Driverobject?-?pointer?to?the?driver?object
????RegistryPath?-?pointer?to?a?unicode?string?representing?the?path
???????????????????to?driver-specific?key?in?the?registry
Return?Value:
????STATUS_SUCCESS?if?successful
????STATUS_UNSUCCESSFUL?otherwise
--*/
NTSTATUS?DriverEntry(IN?PDRIVER_object?Driverobject?IN?PUNICODE_STRING?RegistryPath)
{
????PDEVICE_object?????????deviceobject?=?NULL;
????NTSTATUS???????????????ntStatus;
????UNICODE_STRING?????????deviceNameUnicodeString;
????UNICODE_STRING?????????devicelinkUnicodeString;
dprintf(“DrvFltIp.SYS:?entering?DriverEntry\n“);
//we?have?to?create?the?device
RtlInitUnicodeString(&deviceNameUnicodeString?NT_DEVICE_NAME);
ntStatus?=?IoCreateDevice(Driverobject?
0
&deviceNameUnicodeString?
FILE_DEVICE_DRVFLTIP
0
FALSE
&deviceobject);
????if?(?NT_SUCCESS(ntStatus)?)
????{
????
????????//?Create?a?symbolic?link?that?Win32?apps?can?specify?to?gain?access
????????//?to?this?driver/device
????????RtlInitUnicodeString(&devicelinkUnicodeString?DOS_DEVICE_NAME);
????????ntStatus?=?IoCreateSymboliclink(&devicelinkUnicodeString?&deviceNameUnicodeString);
????????if?(?!NT_SUCCESS(ntStatus)?)
????????{
????????????dprintf(“DrvFltIp.SYS:?IoCreateSymboliclink?failed\n“);
????????}
????????//
????????//?Create?dispatch?points?for?device?control?create?close.
????????//
????????Driverobject->MajorFunction[IRP_MJ_CREATE]?????????=
????????Driverobject->MajorFunction[IRP_MJ_CLOSE]??????????=
????????Driverobject->MajorFunction[IRP_MJ_DEVICE_CONTROL]?=?DrvDispatch;
????????Driverobject->DriverUnload?????????????????????????=?DrvUnload;
????}
????if?(?!NT_SUCCESS(ntStatus)?)
????{
????????dprintf(“Error?in?initia
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2004-06-30?12:42??簡單個人防火墻
?????文件???????3957??2002-12-22?01:18??簡單個人防火墻\DrvFltIp.sys
?????目錄??????????0??2004-06-30?12:42??簡單個人防火墻\testDrv
?????目錄??????????0??2004-06-30?12:42??簡單個人防火墻\testDrv\res
?????文件???????1078??2002-12-20?22:18??簡單個人防火墻\testDrv\res\testDrv.ico
?????文件????????399??2002-12-20?22:18??簡單個人防火墻\testDrv\res\testDrv.rc2
?????文件????????731??2002-12-20?23:21??簡單個人防火墻\testDrv\resource.h
?????文件???????1161??2002-12-21?14:02??簡單個人防火墻\testDrv\sockUtil.cpp
?????文件????????147??2002-12-21?13:40??簡單個人防火墻\testDrv\sockutil.h
?????文件????????209??2002-12-20?22:18??簡單個人防火墻\testDrv\StdAfx.cpp
?????文件???????1054??2002-12-20?22:18??簡單個人防火墻\testDrv\StdAfx.h
?????文件??????14430??2002-12-22?01:22??簡單個人防火墻\testDrv\TDriver.cpp
?????文件???????2812??2002-12-19?14:34??簡單個人防火墻\testDrv\TDriver.h
?????文件???????1165??2002-12-22?01:24??簡單個人防火墻\testDrv\testDrv.clw
?????文件???????2077??2002-12-20?22:18??簡單個人防火墻\testDrv\testDrv.cpp
?????文件???????4428??2002-12-22?01:41??簡單個人防火墻\testDrv\testDrv.dsp
?????文件???????1335??2002-12-20?22:18??簡單個人防火墻\testDrv\testDrv.h
?????文件???????5396??2002-12-22?01:31??簡單個人防火墻\testDrv\testDrv.rc
?????文件???????6483??2002-12-22?01:51??簡單個人防火墻\testDrv\testDrvDlg.cpp
?????文件???????1528??2002-12-22?01:24??簡單個人防火墻\testDrv\testDrvDlg.h
?????文件??????13913??2002-12-22?01:12??簡單個人防火墻\DrvFltIp.c
?????文件???????5100??2002-12-22?01:41??簡單個人防火墻\DrvFltIp.dsp
?????文件????????740??2002-12-20?22:18??簡單個人防火墻\DrvFltIp.dsw
?????文件???????2894??2002-12-21?00:09??簡單個人防火墻\DrvFltIp.h
?????文件?????????79??2002-12-21?00:47??簡單個人防火墻\sources
?????文件????????271??2000-07-26?18:37??簡單個人防火墻\makefile
-----------?---------??----------?-----??----
????????????????71387????????????????????26
- 上一篇:網路崗第八代8.01.41 900用戶完美破解補丁
- 下一篇:8086匯編天平小游戲
評論
共有 條評論