WriteClient Callback Function
The WriteClient callback function is called by a Web filter to send data to the client.
The WriteClient callback function is declared as:
Syntax
BOOL WINAPI * WriteClient(
__in struct _HTTP_FILTER_CONTEXT* pfc,
__in LPVOID Buffer,
__in LPDWORD lpdwBytes,
DWORD dwReserved
);
Parameters
pfc
Pointer to the HTTP_FILTER_CONTEXT data structure that is associated with the current, active HTTP session. Pass the filter context in this parameter.Buffer
Pointer to a buffer containing data to send to the client.lpdwBytes
Pointer to the size of the buffer pointed to by the Buffer parameter.dwReserved
Reserved for future use.
Return Value
This callback function returns TRUE if the call is successful; otherwise, it returns FALSE. To obtain extended error information, call GetLastError.
Remarks
For more information about the correct usage of WriteClient, see SF_REQ_SEND_RESPONSE_HEADER.
The WriteClient callback function is synchronous and blocks the thread from which it is called until a TCP acknowledgment (ACK) response arrives from the client and the I/O operation is completed. When a response sent to a Windows XP and Windows Server 2003 client is divided into small packets (first the start line, then the headers, and then the body), TCP delays sending successive ACK responses on the connection for 200 milliseconds. For improved performance, a Web filter should send as much data as possible in each call to WriteClient. However, a Web filter that sends a large amount of data in calls to this function can block all of the available worker threads with a resultant denial of service (DoS). Note that WriteClient is the only function that a Web filter can use to send a large amount of data in the body of a response.
After a Web filter calls the WriteClient callback function, an SF_NOTIFY_SEND_RAW_DATA event notification is sent to every Web filter that is registered to receive this event notification and has a priority equal to or higher than the priority of the Web filter calling WriteClient. The Web filter calling this function will also receive this event notification if it is registered to receive it. Web filters with a lower priority will not receive this notification.
For more information about the types of event notifications that are sent to Web filters, see Event Notifications.
Requirements
Server | Requires Windows Server 2008 R2 or Windows Server 2008 x64 Edition with SP2. |
Version | Requires Forefront Threat Management Gateway (TMG) 2010. |
Header | Declared in Wpxhttpfilt.h. |
DLL | Requires W3Filter.dll. |
See Also
Send comments about this topic to Microsoft
Build date: 6/30/2010