OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 using Microsoft.Win32.SafeHandles; |
| 6 using System; |
| 7 using System.Collections.Generic; |
| 8 using System.Linq; |
| 9 using System.Runtime.InteropServices; |
| 10 using System.Text; |
| 11 using System.Threading.Tasks; |
| 12 |
| 13 namespace ChromeDebug.LowLevel { |
| 14 public static class NativeMethods { |
| 15 [DllImport("kernel32.dll", SetLastError = true)] |
| 16 [return: MarshalAs(UnmanagedType.Bool)] |
| 17 public static extern bool ReadProcessMemory(IntPtr hProcess, |
| 18 IntPtr lpBaseAddress, |
| 19 IntPtr lpBuffer, |
| 20 int dwSize, |
| 21 out int lpNumberOfBytesRead); |
| 22 |
| 23 [DllImport("ntdll.dll", SetLastError = true)] |
| 24 public static extern LowLevelTypes.NTSTATUS NtQueryInformationProcess( |
| 25 IntPtr hProcess, |
| 26 LowLevelTypes.PROCESSINFOCLASS pic, |
| 27 ref LowLevelTypes.PROCESS_BASIC_INFORMATION pbi, |
| 28 int cb, |
| 29 out int pSize); |
| 30 |
| 31 [DllImport("shell32.dll", SetLastError = true)] |
| 32 public static extern IntPtr CommandLineToArgvW( |
| 33 [MarshalAs(UnmanagedType.LPWStr)] string lpCmdLine, |
| 34 out int pNumArgs); |
| 35 |
| 36 [DllImport("kernel32.dll", SetLastError = true)] |
| 37 public static extern IntPtr LocalFree(IntPtr hMem); |
| 38 |
| 39 [DllImport("kernel32.dll", SetLastError = true)] |
| 40 public static extern IntPtr OpenProcess( |
| 41 LowLevelTypes.ProcessAccessFlags dwDesiredAccess, |
| 42 [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, |
| 43 int dwProcessId); |
| 44 |
| 45 [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingC
onvention.StdCall, |
| 46 CharSet = CharSet.Unicode)] |
| 47 public static extern uint QueryFullProcessImageName( |
| 48 IntPtr hProcess, |
| 49 [MarshalAs(UnmanagedType.U4)] LowLevelTypes.ProcessQueryImageNameMode fl
ags, |
| 50 [Out] StringBuilder lpImageName, ref int size); |
| 51 |
| 52 [DllImport("kernel32.dll", SetLastError = true)] |
| 53 [return: MarshalAs(UnmanagedType.Bool)] |
| 54 public static extern bool CloseHandle(IntPtr hObject); |
| 55 |
| 56 [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)] |
| 57 public static extern SafeFileHandle CreateFile(string lpFileName, |
| 58 LowLevelTypes.FileAccessFlags
dwDesiredAccess, |
| 59 LowLevelTypes.FileShareFlags
dwShareMode, |
| 60 IntPtr lpSecurityAttributes, |
| 61 LowLevelTypes.FileCreationDis
position dwDisp, |
| 62 LowLevelTypes.FileFlagsAndAtt
ributes dwFlags, |
| 63 IntPtr hTemplateFile); |
| 64 } |
| 65 } |
OLD | NEW |