Installation Home

Introduction
What is WinpkFilter?
Programming Languages Support
Installation
Helper drivers IOCTLs
IOCTL_NDISRD_ADAPTER_QUEUE_SIZE
IOCTL_NDISRD_FLUSH_ADAPTER_QUEUE
IOCTL_NDISRD_GET_ADAPTER_MODE
IOCTL_NDISRD_GET_PACKET_FILTERS_RESET_STATS
IOCTL_NDISRD_GET_PACKET_FILTERS
IOCTL_NDISRD_GET_PACKET_FILTERS_TABLESIZE
IOCTL_NDISRD_GET_RAS_LINKS
IOCTL_NDISRD_GET_TCPIP_INTERFACES
IOCTL_NDISRD_GET_VERSION
IOCTL_NDISRD_READ_PACKET
IOCTL_NDISRD_READ_PACKETS
IOCTL_NDISRD_RESET_PACKET_FILTERS
IOCTL_NDISRD_SEND_PACKET_TO_ADAPTER
IOCTL_NDISRD_SEND_PACKET_TO_MSTCP
IOCTL_NDISRD_SEND_PACKETS_TO_ADAPTER
IOCTL_NDISRD_SEND_PACKETS_TO_MSTCP
IOCTL_NDISRD_SET_ADAPTER_EVENT
IOCTL_NDISRD_SET_ADAPTER_MODE
IOCTL_NDISRD_SET_EVENT
IOCTL_NDISRD_SET_PACKET_FILTERS
IOCTL_NDISRD_SET_WAN_EVENT
User-mode API
C++ Interface
CNdisApi::CNdisApi
CNdisApi::~CNdisApi
CNdisApi::ConvertWindows2000AdapterName
CNdisApi::ConvertWindows9xAdapterName
CNdisApi::ConvertWindowsNTAdapterName
CNdisApi::DeviceIoControl
CNdisApi::FlushAdapterPacketQueue
CNdisApi::GetAdapterMode
CNdisApi::GetAdapterPacketQueueSize
CNdisApi::GetAdaptersStartupMode
CNdisApi::GetBytesReturned
CNdisApi::GetHwPacketFilter
CNdisApi::GetMTUDecrement
CNdisApi::GetPacketFilterTable
CNdisApi::GetPacketFilterTableResetStats
CNdisApi::GetPacketFilterTableSize
CNdisApi::GetRasLinks
CNdisApi::GetTcpipBoundAdaptersInfo
CNdisApi::GetVersion
CNdisApi::IsDriverLoaded
CNdisApi::NdisrdRequest
CNdisApi::ReadPacket
CNdisApi::ReadPackets
CNdisApi::ResetPacketFilterTable
CNdisApi::SendPacketsToAdapter
CNdisApi::SendPacketsToMstcp
CNdisApi::SendPacketToMstcp
CNdisApi::SendPacketToAdapter
CNdisApi::SetAdapterMode
CNdisApi::SetAdapterListChangeEvent
CNdisApi::SetAdaptersStartupMode
CNdisApi::SetHwPacketFilter
CNdisApi::SetMTUDecrement
CNdisApi::SetPacketFilterTable
CNdisApi::SetPacketEvent
CNdisApi::SetWANEvent
C Interface
CloseFilterDriver
FlushAdapterPacketQueue
GetAdapterMode
GetAdapterPacketQueueSize
GetAdaptersStartupMode
GetBytesReturned
GetDriverVersion
GetMTUDecrement
GetHwPacketFilter
GetPacketFilterTableResetStats
GetPacketFilterTable
GetPacketFilterTableSize
GetRasLinks
GetTcpipBoundAdaptersInfo
IsDriverLoaded
NdisrdRequest
OpenFilterDriver
ReadPacket
ReadPackets
ResetPacketFilterTable
SendPacketsToAdapter
SendPacketsToMstcp
SendPacketToAdapter
SendPacketToMstcp
SetAdapterListChangeEvent
SetAdapterMode
SetAdaptersStartupMode
SetHwPacketFilter
SetMTUDecrement
SetPacketFilterTable
SetPacketEvent
SetWANEvent
WinpkFilter Structures
_ADAPTER_EVENT
_ADAPTER_MODE
_DATA_LINK_LAYER_FILTER
_ETH_802_3_FILTER
_ETH_M_REQUEST
_ETH_REQUEST
_INTERMEDIATE_BUFFER
_IP_ADDRESS_V4
_IP_RANGE_V4
_IP_SUBNET_V4
_IP_V4_FILTER
_NETWORK_LAYER_FILTER
_NDISRD_ETH_Packet
_PACKET_OID_DATA
_PORT_RANGE
_RAS_LINK_INFO
_RAS_LINKS
_STATIC_FILTER
_STATIC_FILTER_TABLE
_TCP_AdapterList
_TCPUDP_FILTER
_TRANSPORT_LAYER_FILTER
WinpkFilter Samples
Filter
FilterStats
GRETunnel
ListAdapters
NdisRequest
PacketSniffer
PassThru
WWWCensor

 
Windows Packet Filter Kit: Installation

Installation of WinpkFilter© 3.0

WinpkFilter setup script will automatically configure your system and install required helper drivers. However, if your license allows driver redistribution and you plan to install helper drivers within your own setup script you should do the following:

Windows 9x/ME

Copy ndisrd.vxd to the \WINDOWS\SYSTEM directory and create the following registry key in order to start helper driver on system boot:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NDISRD

Under this key you should create the following REG_SZ value:

"StaticVxD"="NDISRD.VxD"
       
Windows NT 4.0

Copy ndisrd.sys to the \WINNT\SYSTEM32\DRIVERS directory and create the following registry key in order to start helper driver on system boot:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDISRD

Under this key you should create the following values:

"Type"=0x00000001 (REG_DWORD)

"Group"="Network" (REG_SZ)

"Start"=0x00000001 (REG_DWORD)

"Error Control"=0x00000001 (REG_DWORD)
Windows 2000/XP/2003 (32 bit OS)

Copy ndisrd.sys to the \WINNT\SYSTEM32\DRIVERS directory and create the following registry key in order to start helper driver on system boot:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDISRD

Under this key you should create the following values:

"Type"=0x00000001 (REG_DWORD)

"Group"="Streams Drivers" (REG_SZ)

"Start"=0x00000001 (REG_DWORD)

"Error Control"=0x00000001 (REG_DWORD)

Windows XP/2003 x64
Windows Vista
Windows Server 2008

These operating systems are supported by WinpkFilter driver based on NDIS Intermediate driver.

Manual installation:

Prepare a floppy disk (or installation directory) that contains these files: ndisrd.inf, ndisrd_m.inf and ndisrd.sys. On the desktop, right-click the My Network Places icon and choose Properties. Right-click on the relevant Local Area Connection icon and choose Properties. Click Install, then Service, then Add, then Have Disk. Browse to the drive/directory containing the files listed above. Click OK. This should show "WinpkFilter Driver" in a list of Network Services. Highlight this and click OK. This should install the WinpkFilter driver. Click OK or Yes each time the system prompts with a warning regarding installation of unsigned files. This is necessary because binaries generated via the DDK build environment are not signed. Two .INF files are needed rather than one because WinpkFilter is installed both as a protocol and a miniport.

Automatic installation:

WinpkFilter package contains a modified version of snetcfg tool (original version of which can be found in the DDK) which allows automatic installation of WinpkFilter drivers. The command line below will install WinpkFilter driver automatically (snetcfg.exe, ndisrd.inf, ndisrd_m.inf and ndisrd.sys should be in the same folder):

snetcfg.exe -v -l ndisrd.inf -m ndisrd_m.inf -c s -i nt_ndisrd

Next command uninstalls WinpkFilter driver:

snetcfg.exe -v -u nt_ndisrd

Important note:

For Windows Vista and later versions of the Windows family of operating systems, kernel-mode software must have a digital signature to load on x64-based computer systems. WinpkFilter drivers are not signed and in order to test them on Vista x64 you should press F8 during system boot and choose Disable Driver Signature Enforcement option. For the commercial software you'd have to obtain Code Signing certificate from Verysign.