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 in combination with promiscuous mode to avoid multiply processing of one packet.

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