WriteServer Callback Function
The WriteServer callback function writes a data buffer to the server.
The WriteServer callback function is declared as:
Syntax
BOOL WINAPI * WriteServer(
__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 the buffer to write.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
The WriteServer function can be called after an SF_NOTIFY_FORWARD_RAW_DATA notification is received until an SF_NOTIFY_END_OF_REQUEST notification is received. The WriteServer function should not be called before an SF_NOTIFY_FORWARD_RAW_DATA notification is received because there is no connection with the server. For more information about the types of event notifications that are sent to Web filters, see Event Notifications.
The WriteServer function is called through a pointer that is a member of the WPX_FILTER_CONTEXT structure. To get a pointer to the WPX_FILTER_CONTEXT structure for calling the WriteServer function from the pointer to the HTTP_FILTER_CONTEXT structure provided in the pfc parameter in the call to the HttpWPXFilterProc entry-point function (for an SF_NOTIFY_FORWARD_RAW_DATA notification), use the TO_WPX_FILTER_CONTEXT macro as follows:
WPX_FILTER_CONTEXT* pwfc = TO_WPX_FILTER_CONTEXT(pfc);
if (pwfc != NULL) {
...
}
The WriteServer callback function is synchronous and blocks the thread from which it is called until the I/O operation is completed. A Web filter sending 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).
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