Hello Keming, thanks for the patch!
Unfortunately this can't work as-is; we need to be able to access the fd even after IBaseFilter::Stop() [e.g. to query or set properties, or to restart the stream.]
Can you perhaps provide more details about the problem you are trying to solve?
ἔρρωσο, Zebediah