Microsoft Internet Security and Acceleration Server 2000

IFWXConnection

The connection object represented by the IFWXConnection interface implements functions specific to a particular connection. Each remote socket created for a client has a connection object associated with it.

The IFWXConnection methods are understood most easily in the context of connection scenarios:

Scenario A: Bind/Connect

  1. The client requests a bind or connection.
  2. The Firewall service creates a Connection object.
  3. The Firewall service checks access rights.
  4. The Firewall Service provides an event notification to the application filters, so that the filters can then work with the Connection object and use:

Scenario B: Bind/Listen

  1. The client requests a bind.
  2. The filter calls IFWXSession::BindForClient.
  3. The Firewall service creates a Connection object.
  4. The Firewall service provides an event notification to the application filter, so that the filter can then work with the Connection object.

When a listening socket exists, and a fwx_AcceptedConnection event occurs, an accepted socket is created on the Firewall service. The Connection object for the accepted socket exists before the matching client socket is created.

Notes to Implementers

When a registered event occurs, the Firewall service will call FwxFirewallEventHandler and will pass the FirewallEvent parameter to it. Included in the FirewallEvent parameter is a pointer to IFWXConnection.

After the pointer is available you can use the methods such as IFWXConnection:AttachDataFilter.

Sample Filters that Use IFWXConnection Methods

The method IFWXConnection::AttachDataFilter is used in the following sample filters provided with ISA:

The method IFWXConnection::GetExternalSocketName is used in the following sample provided with ISA:

The method IFWXConnection::Deny is used in the following samples provided with ISA:

The method IFWXConnection::EmulateConnection is used in the following sample provided with ISA:

The method IFWXConnection::SetProtocol is used in the following samples provided with ISA:

The method IFWXConnection::SetSocketName is used in the following sample provided with ISA:

Typical Implementations

Implemented by the Firewall service.