The FilterShutdown method begins the shutdown sequence for the filter object when the Microsoft Firewall service is shutting down.
HRESULT FilterShutdown();
Implementations of this method should handle any run-time error and return S_OK.
When shutting down the filter, the Firewall service releases references to all filter-implemented objects, after first making calls to the applicable Detach method (either the IFWXSessionFilter::Detach or IFWXDataFilter::Detach method). However, because of the asynchronous nature of the proxy, the order of calling the Detach and FilterShutdown methods is undefined, and the Firewall service may call the IFWXSessionFilter::Detach method after FilterShutdown has returned. When the Firewall service calls the IFWXSessionFilter::Detach method after FilterShutdown has returned, filter-implemented objects may still be in the process of shutting down. Typically, the shutdown of filter-implemented objects does not have to be considered in filter design because the shutdown of objects occurs in the context of proxy worker threads. When the Firewall service is stopped, it waits until all of its worker threads have terminated and the shutdown operations have completed.
However, if the filter is doing shutdown work in a context other than a proxy worker thread—for example, a remote procedure call (RPC) worker thread or a timer callback thread—the nonproxy thread may execute code after all proxy worker threads have ended. Thus, the nonproxy thread will not have an appropriate context in which to execute the code. To avoid this situation, the FilterShutdown method must not return until all shutdown work has completed in the nonproxy worker thread contexts.
Server | Requires Windows Server 2008. |
---|---|
Version | Requires Forefront Threat Management Gateway (TMG). |
Header |
Declared in Wspfwext.idl. |
Send comments about this topic to Microsoft
Build date: 11/30/2009
© 2008 Microsoft Corporation. All rights reserved.