📄 filtertest.cpp
字号:
//////////////////////////////////////////////////////////
// FilterTest.CPP文件
#include <windows.h>
#include <stdio.h>
#include <ntddndis.h>
#include "IOCOMMON.h"
#include "ptutils.h"
void ShowStats(PPassthruStatistics pStats)
{
printf(" Total Packets Sent : %d\n", pStats->nMPSendPktsCt);
printf(" Send Packets Blocked : %d\n", pStats->nMPSendPktsDropped);
printf(" Total Packets Received : %d\n", pStats->nPTRcvPktCt + pStats->nPTRcvCt);
printf(" Receive Packets Blocked: %d\n", pStats->nPTRcvDropped + pStats->nPTRcvPktDropped);
}
int main()
{
HANDLE hControlDevice = PtOpenControlDevice();
CIMAdapters adapters;
if(!adapters.EnumAdapters(hControlDevice))
{
printf(" EnumAdapters failed \n");
return -1;
}
printf(" Driver Bindings: \n");
for(int i=0; i<adapters.m_nAdapters; i++)
{
// 显示虚拟适配器名称
printf(" \"%ws\"\n", adapters.m_pwszVirtualName[i]);
// 显示下层适配器名称
printf(" \"%ws\"\n", adapters.m_pwszAdapterName[i]);
// 查询此适配器的网络活动状态
HANDLE hLowerAdapter = PtOpenAdapter(adapters.m_pwszAdapterName[i]);
if(hLowerAdapter != INVALID_HANDLE_VALUE)
{
PassthruStatistics stats;
if(PtQueryStatistics(hLowerAdapter, &stats))
{
ShowStats(&stats);
}
::CloseHandle(hLowerAdapter);
}
printf(" \n");
}
::CloseHandle(hControlDevice);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -