3 // Copyright (c) Microsoft Corporation. All rights reserved.
6 /*============================================================
8 ** Class: SafeFileHandle
11 ** A wrapper for file handles
14 ===========================================================*/
17 using System.Security;
18 using System.Security.Permissions;
19 using System.Runtime.InteropServices;
20 using System.Runtime.CompilerServices;
21 using System.Runtime.ConstrainedExecution;
22 using System.Runtime.Versioning;
23 using Microsoft.Win32;
25 namespace Microsoft.Win32.SafeHandles {
27 [System.Security.SecurityCritical] // auto-generated_required
28 public sealed class SafeFileHandle: SafeHandleZeroOrMinusOneIsInvalid {
30 private SafeFileHandle() : base(true)
34 public SafeFileHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle) {
35 SetHandle(preexistingHandle);
38 [System.Security.SecurityCritical]
39 [ResourceExposure(ResourceScope.Machine)]
40 [ResourceConsumption(ResourceScope.Machine)]
41 override protected bool ReleaseHandle()
43 return Win32Native.CloseHandle(handle);