You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			67 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="UnsafeNativeMethods.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| namespace Microsoft.Win32 {
 | |
|     using System.Runtime.InteropServices;
 | |
|     using System.Threading;
 | |
|     using System;
 | |
|     using System.Security.Permissions;
 | |
|     using System.Collections;
 | |
|     using System.IO;
 | |
|     using System.Text;
 | |
|     using Microsoft.Win32.SafeHandles;
 | |
|     using System.Configuration;
 | |
| 
 | |
|     [
 | |
|     System.Security.SuppressUnmanagedCodeSecurityAttribute()
 | |
|     ]
 | |
|     internal static class UnsafeNativeMethods {
 | |
|         [DllImport(ExternDll.Kernel32, SetLastError=true, CharSet=CharSet.Auto, BestFitMapping=false)]
 | |
|         internal static extern bool GetFileAttributesEx(string name, int fileInfoLevel, out WIN32_FILE_ATTRIBUTE_DATA data);
 | |
| 
 | |
|         internal const int GetFileExInfoStandard = 0;
 | |
| 
 | |
|         [StructLayout(LayoutKind.Sequential)]
 | |
|         internal struct WIN32_FILE_ATTRIBUTE_DATA {
 | |
|             internal int fileAttributes;
 | |
|             internal uint ftCreationTimeLow;
 | |
|             internal uint ftCreationTimeHigh;
 | |
|             internal uint ftLastAccessTimeLow;
 | |
|             internal uint ftLastAccessTimeHigh;
 | |
|             internal uint ftLastWriteTimeLow;
 | |
|             internal uint ftLastWriteTimeHigh;
 | |
|             internal uint fileSizeHigh;
 | |
|             internal uint fileSizeLow;
 | |
|         }
 | |
| 
 | |
|         [DllImport(ExternDll.Kernel32, CharSet=CharSet.Auto, BestFitMapping=false)]
 | |
|         internal static extern int GetModuleFileName(HandleRef hModule, StringBuilder buffer, int length);
 | |
| 
 | |
| #if !FEATURE_PAL
 | |
|         [DllImport(ExternDll.Crypt32, SetLastError=true, CharSet=CharSet.Unicode)]
 | |
|         internal extern static bool CryptProtectData(ref DATA_BLOB inputData, string description, ref DATA_BLOB entropy, IntPtr pReserved, ref CRYPTPROTECT_PROMPTSTRUCT promptStruct, UInt32 flags, ref DATA_BLOB outputData);
 | |
| 
 | |
|         [DllImport(ExternDll.Crypt32, SetLastError= true, CharSet=CharSet.Unicode)]
 | |
|         internal extern static bool CryptUnprotectData(ref DATA_BLOB inputData, IntPtr description, ref DATA_BLOB entropy, IntPtr pReserved, ref CRYPTPROTECT_PROMPTSTRUCT promptStruct, UInt32 flags, ref DATA_BLOB outputData);
 | |
| 
 | |
|         [DllImport(ExternDll.Advapi32, SetLastError=true, CharSet=CharSet.Unicode)]
 | |
|         internal extern static int CryptAcquireContext(out SafeCryptContextHandle phProv, string pszContainer, string pszProvider, uint dwProvType, uint dwFlags);
 | |
| 
 | |
|         [DllImport(ExternDll.Advapi32, SetLastError=true, CharSet=CharSet.Unicode)]
 | |
|         internal extern static int CryptReleaseContext(SafeCryptContextHandle hProv, uint dwFlags);
 | |
| 
 | |
|         [DllImport(ExternDll.Kernel32, CharSet=CharSet.Auto)]
 | |
|         internal extern static IntPtr LocalFree(IntPtr buf);
 | |
| #endif
 | |
| 
 | |
|         // MoveFile Parameter
 | |
|         internal const int MOVEFILE_REPLACE_EXISTING = 0x00000001;
 | |
| 
 | |
|         [DllImport(ExternDll.Kernel32, CharSet=CharSet.Auto, BestFitMapping=false)]
 | |
|         internal static extern bool   MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);
 | |
|     }
 | |
| }
 |