I unsuccessfully tried to test this with simple topology of real source -> sample grabber using source type (no conversion), and Close(), or clearing topology does not trigger shutdown, ever. session->Shutdown() always shuts down actual sink when it's set as activation object, and again, never shuts down if it was set directly.
This is pretty weird, I'll try some more tests. Maybe just SetTopology() does not transition session state enough, and it has to start playback even if just for a little while. It seems wrong if this automatic shutdown only happened when playback completes by reaching its end time.
Derek, have you tried to test this in some way?