-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathProcessHandle.cs
More file actions
35 lines (31 loc) · 1004 Bytes
/
ProcessHandle.cs
File metadata and controls
35 lines (31 loc) · 1004 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// <copyright file="ProcessHandle.cs" company="Nick Lowe">
// Copyright © Nick Lowe 2009
// </copyright>
// <author>Nick Lowe</author>
// <email>nick@int-r.net</email>
// <url>http://processprivileges.codeplex.com/</url>
namespace ProcessPrivileges
{
using System;
using System.ComponentModel;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;
internal sealed class ProcessHandle : SafeHandleZeroOrMinusOneIsInvalid
{
internal ProcessHandle(IntPtr processHandle, bool ownsHandle)
: base(ownsHandle)
{
handle = processHandle;
}
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
protected override bool ReleaseHandle()
{
if (!NativeMethods.CloseHandle(handle))
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
return true;
}
}
}