じゃ、基底クラス書いた奴を罵りながら諦めろ。
一応、再実装させた Dispose() で base.Dispose() を呼び出せば、
基底クラス型から Dispose() を呼び出さない限り(IDispose 型から呼ぶか派生クラス型から呼び出す限り)なんとかなるが。
その基底クラスに protected virtual(or override) の Dispose(bool) もないんだよな。

あと、MSDN の「アンマネージ リソースをクリーンアップするための Finalize および Dispose の実装」を読んで
正しい IDisposable の実装のお勉強を。

.NET 2.0 なら、アンマネージドリソースについて SafeHandle への分割の検討を。