SetAdaptersStartupMode

static BOOL CNdisApi::SetAdaptersStartupMode ( DWORD dwAdaptersStartupMode );

Return Value:
TRUE if call was successful, FALSE otherwise

Parameters:
dwAdaptersStartupMode
must be a combination of the XXX_LISTEN or XXX_TUNNEL flags:

  • MSTCP_FLAG_SENT_TUNNEL – queue all packets sent from MSTCP to network interface. Original packet dropped.
  • MSTCP_FLAG_RECV_TUNNEL – queue all packets indicated by network interface to MSTCP. Original packet dropped.
  • MSTCP_FLAG_SENT_LISTEN – queue all packets sent from MSTCP to network interface. Original packet goes ahead.
  • MSTCP_FLAG_RECV_LISTEN – queue all packets indicated by network interface to MSTCP. Original packet goes ahead.
  • MSTCP_FLAG_FILTER_DIRECT – In promiscuous mode TCP/IP stack receives all packets in the Ethernet segment and replies with various ICMP packets, to prevent this set this flag. All packets with destination MAC different from FF-FF-FF-FF-FF-FF and network interface current MAC will never reach MSTCP.

By default, loopback packets are passed to original MSTCP handlers without processing, to change this behavior use these additional flags below:

  • MSTCP_FLAG_LOOPBACK_FILTER – Pass loopback packet for processing by helper driver routines (redirected to user-mode if requested).
  • MSTCP_FLAG_LOOPBACK_BLOCK – Silently drop loopback packets, this flag is recommended for usage with promiscuous mode to avoid multiply processing of one packet.

Remarks:
This routine sets the default mode to be applied on each adapter when it appears in the system. It can be useful when you need to prevent a network interface to start operating before your application has started. Important note, this API call requires a system reboot to take effect.