IFWXDataFilter::SetSockets method
Applies to: desktop apps only
The SetSockets method sets the internal and external sockets for the data filter. When this method is called, the filter is expected to begin the data-pumping process between the sockets.
Syntax
HRESULT SetSockets(
[in] IFWXSocket *piInternalSocket,
[in] IFWXSocket *piExternalSocket,
[in] IFWXConnection *piConnection,
[in] IUnknown *punkFilterContext
);
Parameters
piInternalSocket [in]
Pointer to the IFWXSocket interface for an internal socket.piExternalSocket [in]
Pointer to the IFWXSocket interface for an external socket.piConnection [in]
Pointer to the IFWXConnection interface on the connection object on which this data filter is installed.punkFilterContext [in]
Pointer to the interface used to pass context information to the data filter. The parameter will have the same value as the punkFilterContext parameter of the IFWXConnection::AttachDataFilter and IFWXSession::SetDataFilterFactory methods.
Return value
Implementations of this method should return the following:
S_OK
The method succeeded.E_OUTOFMEMORY
Not enough memory or resources could be allocated to process the event. The connection will be terminated.
Remarks
A filter that is emulating a connection receives NULL for the external socket interface.
Examples
The following is an example implementation of the IFWXDataFilter::SetSockets method.
STDMETHODIMP
//CDumpData is the name of the object that implements
//IFWXDataFilter in this example.
CDumpData::SetSockets(
IN IFWXSocket *piInternalSocket,
IN IFWXSocket *piExternalSocket,
IN IFWXConnection *piConnection,
IN IUnknown *punkFilterContext
)
{
// Using Lock/Unlock, all access to the sockets is protected
// because Detach could be called at any time.
Lock();
m_spInternalSocket = piInternalSocket;
m_spExternalSocket = piExternalSocket;
Unlock();
//ReadFirstBuffers is a function that waits for
//data on both sockets.
return ReadFirstBuffers();
}
The variables m_spInternalSocket and m_spExternalSocket are defined as follows:
CComPtr<IFWXSocket> m_spExternalSocket;
CComPtr<IFWXSocket> m_spInternalSocket;
Requirements
Minimum supported client |
None supported |
Minimum supported server |
Windows Server 2008 R2, Windows Server 2008 with SP2 (64-bit only) |
Version |
Forefront Threat Management Gateway (TMG) 2010 |
Header |
Wspfwext.idl |
See also
Build date: 7/12/2010