我已经编写了几个 ISAPI,其中一个具有您描述的功能。我使用了 SF_NOTIFY_SEND_RAW_DATA - 我相信第一个调用将是标题,因此您可以使用:
FilterContext->ServerSupportFunction(FilterContext, SF_REQ_DISABLE_NOTIFICATIONS, 0, SF_NOTIFY_SEND_RAW_DATA, 0);
禁用未来原始数据的通知。然后在 HTTP_FILTER_RAW_DATA 结构中你有 pvInData,它是当前标头,我读入然后将其写入我分配的新 HTTP_FILTER_RAW_DATA(请记住对结构和 pvInData 使用 FilterContext->AllocMem)。完成后,将新标头写入 FilterContext->WriteClient 并返回 SF_STATUS_REQ_READ_NEXT。
此外,在初始化时确保设置 SF_NOTIFY_ORDER_HIGH 和 SF_NOTIFY_SEND_RAW_DATA。
通过查看我的旧代码,这就是我所做的,它是专门删除一个标题(加上它还添加了一个),所以它肯定会执行你需要做的事情。我要说的唯一警告是,我记得与 RAW_DATA 相关的一些变化,从 IIS5(当我写这篇文章时)到 IIS6+,但我从来不需要更新这个特定的 ISAPI,所以我不知道机会是否影响了它的完成方式或不是。希望这对您有所帮助,尽管您可能至少有一个风滚草来回答您的问题!:)