Packet Sniffer SDK DLL Edition

HNLBAdapter :: Properties :: LbAdpSetUserFilter

 Previous Next

Sets the handle of HNUserFilter object.

Syntax:

HANDLE __stdcall LbAdpSetUserFilter(HANDLE hLbAdp, HANDLE hFtr);

Parameters:

hLbAdp

[in] HNLBAdapter object handle.

hFtr

[in] HNUserFilter object handle.

Return values:

If the function succeeds the return value will be the handle of the HNUserFilter object. Otherwise the return value will be NULL.

Description:

Use LbAdpSetUserFilter to set a user-settable packet filter for the loopback adapter.

Please remember, that UserFilter must be used with the UserFilterActive property.
UserFilter property may be used in the Ethernet emulation mode only (see HNLBAdapter.EthEmulation[Get/Set]).
// Create TCP filter
HANDLE hBpf = BpfCreate();
...
BpfAddCmd(hFtr,BPF_LD+BPF_H+BPF_ABS, 12);                    
BpfAddJmp(hFtr,BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_IP, 0, 10);  
BpfAddCmd(hFtr,BPF_LD+BPF_B+BPF_ABS, 23);                    
BpfAddJmp(hFtr,BPF_JMP+BPF_JEQ+BPF_K, IPPROTO_TCP, 0, 8);    
BpfAddCmd(hFtr,BPF_LD+BPF_H+BPF_ABS, 20);                    
BpfAddJmp(hFtr,BPF_JMP+BPF_JSET+BPF_K, 0x1fff, 6, 0);        
BpfAddCmd(hFtr,BPF_LDX+BPF_B+BPF_MSH, 14);                   
BpfAddCmd(hFtr,BPF_LD+BPF_H+BPF_IND, 14);                    
BpfAddJmp(hFtr,BPF_JMP+BPF_JEQ+BPF_K, 25, 2, 0);             
BpfAddCmd(hFtr,BPF_LD+BPF_H+BPF_IND, 16);                    
BpfAddJmp(hFtr,BPF_JMP+BPF_JEQ+BPF_K, 25, 0, 1);             
BpfAddCmd(hFtr,BPF_RET+BPF_K, (UINT)-1);                     
BpfAddCmd(hFtr,BPF_RET+BPF_K, 0);                            

LbAdpSetEthEmulationhLbAdp,TRUE);

LbAdpSetUserFilter(hLbAdp,hBpf);
LbAdpSetUserFilterActive(hLbAdp,TRUE);
See also:HNLBAdapter, HNUserFilter, LbAdpGetUserFilterActive, LbAdpSetUserFilterActive, LbAdpGetUserFilter