System.Runtime.InteropServices.HandleRef wraps a managed object holding a handle to a resource that is passed to unmanaged code using platform invoke. HandleRef was replaced by System.Runtime.InteropServices.SafeHandle and System.Runtime.InteropServices.CriticalHandle in the .NET framework 2.0.