Microsoft KB Archive/239439

From BetaArchive Wiki
Knowledge Base


ISAPI Filter Stops Responding When HttpFilterProc Returns SF_STATUS_REQ_READ_NEXT

Article ID: 239439

Article Last Modified on 11/21/2006



APPLIES TO

  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0



This article was previously published under Q239439

SUMMARY

When the return code SF_STATUS_REQ_READ_NEXT is used, the ISAPI filter stops responding any time a request is received over SSL.

This behavior is by design.

MORE INFORMATION

Returning this code means that the filter wants IIS to suspend normal filter processing and wait for more data from the client. If the client sends more data, all read raw data filters (in priority order) are called up to the filter that used the return code. If the client does not send more data, IIS waits until the connection times out. The Sspifilt.dll filter uses this return code to get a full chunk of the SSL packet for decryption and then returns SF_STATUS_REQ_NEXT_NOTIFICATION. At this point, the filter is called (assuming lower priority) and appears to stop responding because there is no more data sent to the filter.

In the situation above, two filters use this return code; one of them inevitably ends up waiting for data that won't ever arrive. Because the IIS encryption filter Sspifilt.dll uses it any time a request is received over SSL, the filter stops responding any time SSL is used.

This return code should not be used unless the filter accomplishes tasks similar to SSL or is a stream compression filter. Please note that using this return value to retrieve POSTed data in a filter is incorrect and should not be attempted.

Keywords: kbhowto KB239439