| Index: tools/win/ChromeDebug/LowLevel/NativeMethods.cs
|
| diff --git a/tools/win/ChromeDebug/LowLevel/NativeMethods.cs b/tools/win/ChromeDebug/LowLevel/NativeMethods.cs
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..08a47a038cac0cab6c2e8002fa7b3e7e9d000ee4
|
| --- /dev/null
|
| +++ b/tools/win/ChromeDebug/LowLevel/NativeMethods.cs
|
| @@ -0,0 +1,65 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +using Microsoft.Win32.SafeHandles;
|
| +using System;
|
| +using System.Collections.Generic;
|
| +using System.Linq;
|
| +using System.Runtime.InteropServices;
|
| +using System.Text;
|
| +using System.Threading.Tasks;
|
| +
|
| +namespace ChromeDebug.LowLevel {
|
| + public static class NativeMethods {
|
| + [DllImport("kernel32.dll", SetLastError = true)]
|
| + [return: MarshalAs(UnmanagedType.Bool)]
|
| + public static extern bool ReadProcessMemory(IntPtr hProcess,
|
| + IntPtr lpBaseAddress,
|
| + IntPtr lpBuffer,
|
| + int dwSize,
|
| + out int lpNumberOfBytesRead);
|
| +
|
| + [DllImport("ntdll.dll", SetLastError = true)]
|
| + public static extern LowLevelTypes.NTSTATUS NtQueryInformationProcess(
|
| + IntPtr hProcess,
|
| + LowLevelTypes.PROCESSINFOCLASS pic,
|
| + ref LowLevelTypes.PROCESS_BASIC_INFORMATION pbi,
|
| + int cb,
|
| + out int pSize);
|
| +
|
| + [DllImport("shell32.dll", SetLastError = true)]
|
| + public static extern IntPtr CommandLineToArgvW(
|
| + [MarshalAs(UnmanagedType.LPWStr)] string lpCmdLine,
|
| + out int pNumArgs);
|
| +
|
| + [DllImport("kernel32.dll", SetLastError = true)]
|
| + public static extern IntPtr LocalFree(IntPtr hMem);
|
| +
|
| + [DllImport("kernel32.dll", SetLastError = true)]
|
| + public static extern IntPtr OpenProcess(
|
| + LowLevelTypes.ProcessAccessFlags dwDesiredAccess,
|
| + [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle,
|
| + int dwProcessId);
|
| +
|
| + [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall,
|
| + CharSet = CharSet.Unicode)]
|
| + public static extern uint QueryFullProcessImageName(
|
| + IntPtr hProcess,
|
| + [MarshalAs(UnmanagedType.U4)] LowLevelTypes.ProcessQueryImageNameMode flags,
|
| + [Out] StringBuilder lpImageName, ref int size);
|
| +
|
| + [DllImport("kernel32.dll", SetLastError = true)]
|
| + [return: MarshalAs(UnmanagedType.Bool)]
|
| + public static extern bool CloseHandle(IntPtr hObject);
|
| +
|
| + [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
| + public static extern SafeFileHandle CreateFile(string lpFileName,
|
| + LowLevelTypes.FileAccessFlags dwDesiredAccess,
|
| + LowLevelTypes.FileShareFlags dwShareMode,
|
| + IntPtr lpSecurityAttributes,
|
| + LowLevelTypes.FileCreationDisposition dwDisp,
|
| + LowLevelTypes.FileFlagsAndAttributes dwFlags,
|
| + IntPtr hTemplateFile);
|
| + }
|
| +}
|
|
|