Windows防火墙与网络封包截获技术光盘源代码
标签:
•
文件类型: .7z
•
文件大小: 4.03MB
•
下载次数: 1
•
Windows防火墙与网络封包截获技术光盘(源代码)Windows防火墙与网络封包截获技术光盘(源代码)
代码片段和文件信息
///////////////////////////////////////////////////////////////////////
// Copyright (c) 2001-2002
// XStudio Technology All Right Reserved.
// Author: Tony Zhu
// 2001-7-16 Create
// summary:
// This Program to demo the Intermediate TDI Driver.
// This is main file. It include:
// 1. initialize function : DriverEntry
// 2. Unload function : PacketUnload
// 3. Dispatch function : PacketDispatch
///////////////////////////////////////////////////////////////////////
#include
#include
#include
#include “packet.h“
NTSTATUS
DriverEntry(
IN PDRIVER_object Driverobject
IN PUNICODE_STRING RegistryPath
)
{
NTSTATUS status = 0;
ULONG i;
DBGPRINT(“DriverEntry Loading...
“);
Driverobject->DriverUnload = PacketUnload;
for (i=0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
{
Driverobject->MajorFunction[i] = PacketDispatch;
}
status = TCPFilter_Attach(DriverobjectRegistryPath);
return status;
}
VOID
PacketUnload(
IN PDRIVER_object Driverobject
)
{
PDEVICE_object Deviceobject;
PDEVICE_object OldDeviceobject;
PTDIH_DeviceExtension pTDIH_DeviceExtension;
DBGPRINT(“DriverEntry unLoading...
“);
Deviceobject = Driverobject->Deviceobject;
while (Deviceobject != NULL)
{
OldDeviceobject = Deviceobject;
pTDIH_DeviceExtension
= (PTDIH_DeviceExtension )Deviceobject->DeviceExtension;
if( pTDIH_DeviceExtension->NodeType
== TDIH_NODE_TYPE_TCP_FILTER_DEVICE )
TCPFilter_Detach( Deviceobject ); // Calls IoDeleteDevice
else
IoDeleteDevice(OldDeviceobject);
Deviceobject = Deviceobject->NextDevice;
}
}
NTSTATUS
PacketDispatch(
IN PDEVICE_object Deviceobject
IN PIRP Irp
)
{
NTSTATUS RC = STATUS_SUCCESS;
PTDIH_DeviceExtension pTDIH_DeviceExtension;
PIO_STACK_LOCATION IrpStack;
PIO_STACK_LOCATION NextIrpStack;
pTDIH_DeviceExtension
= (PTDIH_DeviceExtension )(Deviceobject->DeviceExtension);
IrpStack = IoGetCurrentIrpStackLocation(Irp);
switch(IrpStack->MajorFunction)
{
case IRP_MJ_CREATE:
DBGPRINT(“PacketDispatch(IRP_MJ_CREATE)...
“);
break;
case IRP_MJ_CLOSE:
DBGPRINT(“PacketDispatch(IRP_MJ_CLOSE)...
“);
break;
case IRP_MJ_CLEANUP:
DBGPRINT(“PacketDispatch(IRP_MJ_CLEANUP)...
“);
break;
case IRP_MJ_INTERNAL_DEVICE_CONTROL:
switch (IrpStack->MinorFunction)
{
case TDI_ACCEPT:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL
[TDI_ACCEPT])...
“);
break;
case TDI_ACTION:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL
[TDI_ACTION])...
“);
break;
case TDI_ASSOCIATE_ADDRESS:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL
[TDI_ASSOCIATE_ADDRESS])...
“);
break;
case TDI_DISASSOCIATE_ADDRESS:
DBGPRINT(“PacketDispatch(IRP_MJ_INTERNAL_DEVICE_CONTROL
[TDI_DISASSOCIATE_ADDRESS])...
“);
break;
case TDI_CON
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)