What is SafeHandle? how does it differ from IntPtr? When should I use one? What are its advantages?
Another way of looking at it: with SafeHandle, you should almost never need to write another finalizer.