Sets the handle of HNUserFilter object.
Syntax:
HANDLE __stdcall LbAdpSetUserFilter(HANDLE hLbAdp, HANDLE hFtr);
Parameters:
hLbAdp
hFtr
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);