| OLD | NEW |
| (Empty) |
| 1 // Copyright 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 |