⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydef.c

📁 ndis中间层驱动程序,实现中间层驱动程序
💻 C
字号:

#include "MyDef.h"

//extern LONG		KeReadStateEvent(IN PRKEVENT Event);
extern PVOID	gpEventObject;			// 与应用通信的事件对象
extern PVOID	SystemVirtualAddress;	// 共享内存地址

// 检查数据包函数,这里只检查ARP。
UINT Check_Packet(char *pPacket)
/*--
	return value:
	1 -> 匹配
	0 -> 不匹配
--*/
{
	PARPPACKET p_arp;
	__try
	{
		__try
		{
			p_arp = (PARPPACKET)pPacket;
			// 检测是否为 ARP 数据包
			if(p_arp->dlcHeader.H_frame_type == 8 && p_arp->dlcHeader.L_frame_type == 6)
			{ 
				if(!KeReadStateEvent(gpEventObject))
				{
					// 复制数据到共享内存
					memset(SystemVirtualAddress, 0, 100);
					memcpy(SystemVirtualAddress, (char *)p_arp, sizeof(ARPPACKET));

					KeSetEvent(gpEventObject, 0, FALSE);
				}
				else{}
				return 1;
			}
		}
		except (EXCEPTION_EXECUTE_HANDLER){DbgPrint("发生异常!  --In Check_Packet\n"); }
	}
	finally{}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -