using System; using System.Runtime.ConstrainedExecution; using Cpp2IlInjected; namespace System.Runtime.InteropServices { /// Represents a wrapper class for operating system handles. This class must be inherited. // Token: 0x02000585 RID: 1413 [Token(Token = "0x2000585")] [StructLayout(0)] public abstract class SafeHandle : CriticalFinalizerObject, IDisposable { /// Initializes a new instance of the class with the specified invalid handle value. /// The value of an invalid handle (usually 0 or -1). Your implementation of should return for this value. /// /// to reliably let release the handle during the finalization phase; otherwise, (not recommended). /// The derived class resides in an assembly without unmanaged code access permission. // Token: 0x06002AC5 RID: 10949 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AC5")] [Address(RVA = "0x2382810", Offset = "0x2381610", VA = "0x182382810")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected SafeHandle(IntPtr invalidHandleValue, bool ownsHandle) { } /// Frees all resources associated with the handle. // Token: 0x06002AC6 RID: 10950 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AC6")] [Address(RVA = "0x2382610", Offset = "0x2381410", VA = "0x182382610", Slot = "1")] protected override void Finalize() { } /// Sets the handle to the specified pre-existing handle. /// The pre-existing handle to use. // Token: 0x06002AC7 RID: 10951 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AC7")] [Address(RVA = "0x3F7200", Offset = "0x3F6000", VA = "0x1803F7200")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] protected void SetHandle(IntPtr handle) { } /// Returns the value of the field. /// An representing the value of the field. If the handle has been marked invalid with , this method still returns the original handle value, which can be a stale value. // Token: 0x06002AC8 RID: 10952 RVA: 0x00016A58 File Offset: 0x00014C58 [Token(Token = "0x6002AC8")] [Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] public IntPtr DangerousGetHandle() { return 0; } /// Gets a value indicating whether the handle is closed. /// /// if the handle is closed; otherwise, . // Token: 0x17000653 RID: 1619 // (get) Token: 0x06002AC9 RID: 10953 RVA: 0x00016A70 File Offset: 0x00014C70 [Token(Token = "0x17000653")] public bool IsClosed { [Token(Token = "0x6002AC9")] [Address(RVA = "0x23828A0", Offset = "0x23816A0", VA = "0x1823828A0")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] get { return default(bool); } } /// When overridden in a derived class, gets a value indicating whether the handle value is invalid. /// /// if the handle value is invalid; otherwise, . // Token: 0x17000654 RID: 1620 // (get) Token: 0x06002ACA RID: 10954 [Token(Token = "0x17000654")] public abstract bool IsInvalid { [Token(Token = "0x6002ACA")] [Address(Slot = "5")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] get; } /// Marks the handle for releasing and freeing resources. // Token: 0x06002ACB RID: 10955 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002ACB")] [Address(RVA = "0x2382280", Offset = "0x2381080", VA = "0x182382280")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] public void Close() { } /// Releases all resources used by the class. // Token: 0x06002ACC RID: 10956 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002ACC")] [Address(RVA = "0x2382280", Offset = "0x2381080", VA = "0x182382280", Slot = "4")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] public void Dispose() { } /// Releases the unmanaged resources used by the class specifying whether to perform a normal dispose operation. /// /// for a normal dispose operation; to finalize the handle. // Token: 0x06002ACD RID: 10957 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002ACD")] [Address(RVA = "0x2382560", Offset = "0x2381360", VA = "0x182382560", Slot = "6")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] protected virtual void Dispose(bool disposing) { } /// When overridden in a derived class, executes the code required to free the handle. /// /// if the handle is released successfully; otherwise, in the event of a catastrophic failure, . In this case, it generates a releaseHandleFailed Managed Debugging Assistant. // Token: 0x06002ACE RID: 10958 [Token(Token = "0x6002ACE")] [Address(Slot = "7")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] protected abstract bool ReleaseHandle(); /// Marks a handle as no longer used. // Token: 0x06002ACF RID: 10959 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002ACF")] [Address(RVA = "0x2382740", Offset = "0x2381540", VA = "0x182382740")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] public void SetHandleAsInvalid() { } /// Manually increments the reference counter on instances. /// /// if the reference counter was successfully incremented; otherwise, . // Token: 0x06002AD0 RID: 10960 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AD0")] [Address(RVA = "0x23822A0", Offset = "0x23810A0", VA = "0x1823822A0")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] public void DangerousAddRef(ref bool success) { } /// Manually decrements the reference counter on a instance. // Token: 0x06002AD1 RID: 10961 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AD1")] [Address(RVA = "0x2382550", Offset = "0x2381350", VA = "0x182382550")] [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)] public void DangerousRelease() { } // Token: 0x06002AD2 RID: 10962 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AD2")] [Address(RVA = "0x2382690", Offset = "0x2381490", VA = "0x182382690")] private void InternalDispose() { } // Token: 0x06002AD3 RID: 10963 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AD3")] [Address(RVA = "0x2382720", Offset = "0x2381520", VA = "0x182382720")] private void InternalFinalize() { } // Token: 0x06002AD4 RID: 10964 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6002AD4")] [Address(RVA = "0x23823B0", Offset = "0x23811B0", VA = "0x1823823B0")] private void DangerousReleaseInternal(bool dispose) { } /// Specifies the handle to be wrapped. // Token: 0x04001935 RID: 6453 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4001935")] protected IntPtr handle; // Token: 0x04001936 RID: 6454 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4001936")] private int _state; // Token: 0x04001937 RID: 6455 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x4001937")] private bool _ownsHandle; // Token: 0x04001938 RID: 6456 [FieldOffset(Offset = "0x1D")] [Token(Token = "0x4001938")] private bool _fullyInitialized; // Token: 0x04001939 RID: 6457 [Token(Token = "0x4001939")] private const int RefCount_Mask = 2147483644; // Token: 0x0400193A RID: 6458 [Token(Token = "0x400193A")] private const int RefCount_One = 4; } }