Home | History | Annotate | Download | only in stats_viewer
      1 // Copyright (c) 2012 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 System;
      6 using System.Collections.Generic;
      7 using System.Runtime.InteropServices;
      8 using System.Text;
      9 
     10 namespace StatsViewer {
     11   /// <summary>
     12   /// Win32 API constants, structs, and wrappers for access via C#.
     13   /// </summary>
     14   class Win32 {
     15     #region Constants
     16     public enum MapAccess {
     17       FILE_MAP_COPY = 0x0001,
     18       FILE_MAP_WRITE = 0x0002,
     19       FILE_MAP_READ = 0x0004,
     20       FILE_MAP_ALL_ACCESS = 0x001f,
     21     }
     22 
     23     public const int GENERIC_READ = unchecked((int)0x80000000);
     24     public const int GENERIC_WRITE = unchecked((int)0x40000000);
     25     public const int OPEN_ALWAYS = 4;
     26     public static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
     27     #endregion
     28 
     29     [DllImport("kernel32", SetLastError=true, CharSet=CharSet.Auto)]
     30     public static extern IntPtr CreateFile ( 
     31        String lpFileName, int dwDesiredAccess, int dwShareMode,
     32        IntPtr lpSecurityAttributes, int dwCreationDisposition,
     33        int dwFlagsAndAttributes, IntPtr hTemplateFile);
     34 
     35     [DllImport("kernel32", SetLastError=true)]
     36     public static extern IntPtr MapViewOfFile (
     37        IntPtr hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh,
     38        int dwFileOffsetLow, int dwNumBytesToMap);
     39 
     40     [DllImport("kernel32", SetLastError=true, CharSet=CharSet.Auto)]
     41     public static extern IntPtr OpenFileMapping (
     42        int dwDesiredAccess, bool bInheritHandle, String lpName);
     43 
     44     [DllImport("kernel32", SetLastError=true)]
     45     public static extern bool UnmapViewOfFile (IntPtr lpBaseAddress);
     46 
     47     [DllImport("kernel32", SetLastError = true)]
     48     public static extern bool CloseHandle(IntPtr handle);
     49   }
     50 }
     51