📄 tdiqtest.c
字号:
// Simple driver that demonstrates dynamically loading and unloading
#include "ndis.h"
#include "TDI.H"
#include "TDIKRNL.H"
#include "KSTcpEx.h"
#include "KSUtil.h"
#define NT_DEVICE_NAME_W L"\\Device\\TDIQtest"
#define DOS_DEVICE_NAME_W L"\\DosDevices\\TDIQtest"
#define TL_INSTANCE 0
#define MAX_FAST_ENTITY_BUFFER ( sizeof(TDIEntityID) * 20 )
#define MAX_FAST_ADDRESS_BUFFER ( sizeof(IPAddrEntry) * 10 )
TDI_PROVIDER_INFO g_TdiProviderInfo;
TDI_PROVIDER_STATISTICS g_TdiProviderStatistics;
#define ADDR_TAB_COUNT 20
IPAddrEntry g_IPAddressTable[ ADDR_TAB_COUNT ];
IPSNMPInfo g_SnmpInfo;
NTSTATUS
TDIQtestOpen(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
TDIQtestClose(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
TDIQtestUnload(
IN PDRIVER_OBJECT DriverObject
);
VOID
DoQueryProviderInfoTest( void )
{
NTSTATUS Status;
//
// Query Tcp Provider Information
//
Status = KS_QueryProviderInfo(
TCP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
TCP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query Udp Provider Information
//
Status = KS_QueryProviderInfo(
UDP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
UDP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query An Example RawIp Provider Information
//
Status = KS_QueryProviderInfo(
L"\\Device\\RawIp\\11",
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
L"\\Device\\RawIp\\11",
&g_TdiProviderInfo
);
}
//
// Query AtalkDdp Provider Information
//
Status = KS_QueryProviderInfo(
ATALK_DDP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
ATALK_DDP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query AtalkAdsp Provider Information
//
Status = KS_QueryProviderInfo(
ATALK_ADSP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
ATALK_ADSP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query AtalkAspClient Provider Information
//
Status = KS_QueryProviderInfo(
ATALK_ASP_CLIENT_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
ATALK_ASP_CLIENT_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query AtalkAspServer Provider Information
//
Status = KS_QueryProviderInfo(
ATALK_ASP_SERVER_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
ATALK_ASP_SERVER_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
//
// Query AtalkPap Provider Information
//
Status = KS_QueryProviderInfo(
ATALK_PAP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
ATALK_PAP_DEVICE_NAME_W,
&g_TdiProviderInfo
);
}
#ifdef ZNEVER
//
// Query PCAUSA-Specific Protocols
//
Status = KS_QueryProviderInfo(
L"\\Device\\Nbf_PCASIMMP2",
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
L"\\Device\\Nbf_PCASIMMP2",
&g_TdiProviderInfo
);
}
Status = KS_QueryProviderInfo(
L"\\Device\\NetBT_PCASIMMP2",
&g_TdiProviderInfo
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderInfo(
L"\\Device\\NetBT_PCASIMMP2",
&g_TdiProviderInfo
);
}
#endif // ZNEVER
}
VOID
DoQueryProviderStatisticsTest( void )
{
NTSTATUS Status;
//
// Query Tcp Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
TCP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
TCP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query Udp Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
UDP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
UDP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query An Example RawIp Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
L"\\Device\\RawIp\\11",
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
L"\\Device\\RawIp\\11",
&g_TdiProviderStatistics
);
}
//
// Query AtalkDdp Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
ATALK_DDP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
ATALK_DDP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query AtalkAdsp Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
ATALK_ADSP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
ATALK_ADSP_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query AtalkAspClient Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
ATALK_ASP_CLIENT_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
ATALK_ASP_CLIENT_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query AtalkAspServer Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
);
#endif // DBG
Status = KS_QueryProviderStatistics(
ATALK_ASP_SERVER_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
if(NT_SUCCESS(Status))
{
DEBUG_DumpProviderStatistics(
ATALK_ASP_SERVER_DEVICE_NAME_W,
&g_TdiProviderStatistics
);
}
//
// Query AtalkPap Provider Statistics
//
#ifdef DBG
RtlFillMemory(
&g_TdiProviderStatistics,
sizeof( TDI_PROVIDER_STATISTICS ),
0xFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -