15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using System; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using System.Collections.Generic; 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using System.Runtime.InteropServices; 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using System.Text; 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace StatsViewer { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /// <summary> 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /// Win32 API constants, structs, and wrappers for access via C#. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /// </summary> 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) class Win32 { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #region Constants 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public enum MapAccess { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FILE_MAP_COPY = 0x0001, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FILE_MAP_WRITE = 0x0002, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FILE_MAP_READ = 0x0004, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FILE_MAP_ALL_ACCESS = 0x001f, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public const int GENERIC_READ = unchecked((int)0x80000000); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public const int GENERIC_WRITE = unchecked((int)0x40000000); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public const int OPEN_ALWAYS = 4; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #endregion 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [DllImport("kernel32", SetLastError=true, CharSet=CharSet.Auto)] 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static extern IntPtr CreateFile ( 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String lpFileName, int dwDesiredAccess, int dwShareMode, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IntPtr lpSecurityAttributes, int dwCreationDisposition, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int dwFlagsAndAttributes, IntPtr hTemplateFile); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [DllImport("kernel32", SetLastError=true)] 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static extern IntPtr MapViewOfFile ( 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IntPtr hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int dwFileOffsetLow, int dwNumBytesToMap); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [DllImport("kernel32", SetLastError=true, CharSet=CharSet.Auto)] 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static extern IntPtr OpenFileMapping ( 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int dwDesiredAccess, bool bInheritHandle, String lpName); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [DllImport("kernel32", SetLastError=true)] 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static extern bool UnmapViewOfFile (IntPtr lpBaseAddress); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) [DllImport("kernel32", SetLastError = true)] 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static extern bool CloseHandle(IntPtr handle); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 51