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

📄 iocommon.h

📁 这是一个基于NDIS开发的中间层驱动应用程序
💻 H
字号:
//////////////////////////////////////////////////////////////////
// iocommon.h文件

#ifndef __IOCOMMON__H
#define __IOCOMMON__H


//////////////////////////////////////////////////////////
// 定义IO数据类型


typedef struct _PTUSERIO_OID_DATA 
{
    ULONG           Oid;
    ULONG           Length;
    UCHAR           Data[1];
}PTUSERIO_OID_DATA, *PPTUSERIO_OID_DATA;


// 网络活动状态
typedef struct _PassthruStatistics 
{
   ULONG    nMPSendPktsCt;      // 通过MPSendPackets的封包
   ULONG    nMPSendPktsDropped; // 在MPSendPackets中丢弃的封包
   ULONG    nPTRcvCt;           // 通过PTReceive的封包
   ULONG    nPTRcvDropped;      // 在PTReceive中丢弃的封包
   ULONG    nPTRcvPktCt;        // 通过PTReceivePacket的封包
   ULONG    nPTRcvPktDropped;   // 在PTReceivePacket中丢弃的封包
}PassthruStatistics, *PPassthruStatistics;

// 过滤规则
typedef struct _PassthruFilter
{
	USHORT protocol;		// 使用的协议

	ULONG sourceIP;			// 源IP地址
	ULONG sourceMask;		// 源地址屏蔽码     这里使用屏蔽码是为了能够设置一个IP地址范围

	ULONG destinationIP;	// 目的IP地址
	ULONG destinationMask;	// 目的地址屏蔽码

	USHORT sourcePort;		// 源端口号
	USHORT destinationPort;	// 目的端口号
	
	BOOLEAN bDrop;			// 是否丢弃此封包

}PassthruFilter, *PPassthruFilter;


////////////////////////////////////////////////////////////
// 定义IO控制代码

#define FSCTL_PTUSERIO_BASE      FILE_DEVICE_NETWORK

// 枚举绑定的适配器
#define IOCTL_PTUSERIO_ENUMERATE   \
            CTL_CODE(FSCTL_PTUSERIO_BASE, 0x201, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
// 打开一个适配器
#define IOCTL_PTUSERIO_OPEN_ADAPTER   \
            CTL_CODE(FSCTL_PTUSERIO_BASE, 0x202, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_PTUSERIO_SET_OID	\
		CTL_CODE(FSCTL_PTUSERIO_BASE, 0x203, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#define IOCTL_PTUSERIO_QUERY_OID  \
		CTL_CODE(FSCTL_PTUSERIO_BASE, 0x204, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
    

    
// 获取网络活动状态
#define IOCTL_PTUSERIO_QUERY_STATISTICS   	\
		CTL_CODE(FSCTL_PTUSERIO_BASE, 		\
		0x205, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
// 重设网络活动状态
#define IOCTL_PTUSERIO_RESET_STATISTICS   \
			CTL_CODE(FSCTL_PTUSERIO_BASE, \
				0x206, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
// 添加一个过滤规则
#define IOCTL_PTUSERIO_ADD_FILTER			\
			CTL_CODE(FSCTL_PTUSERIO_BASE,	\
				0x207, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

// 清除过滤规则
#define IOCTL_PTUSERIO_CLEAR_FILTER			\
			CTL_CODE(FSCTL_PTUSERIO_BASE,	\
				0x208, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)


#endif // __IOCOMMON__H






⌨️ 快捷键说明

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