public static extern SafeFileHandle CreateFile(string lpFileName, LowLevelTypes.FileAccessFlags dwDesiredAccess, LowLevelTypes.FileShareFlags dwShareMode, IntPtr lpSecurityAttributes, LowLevelTypes.FileCreationDisposition dwDisp, LowLevelTypes.FileFlagsAndAttributes dwFlags, IntPtr hTemplateFile);
public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref LowLevelTypes.SHFILEINFO psfi, uint cbFileInfo, uint uFlags);
public static extern LowLevelTypes.NTSTATUS NtQueryInformationProcess( IntPtr hProcess, LowLevelTypes.PROCESSINFOCLASS pic, ref LowLevelTypes.PROCESS_BASIC_INFORMATION pbi, int cb, out int pSize);
public static extern IntPtr OpenProcess( LowLevelTypes.ProcessAccessFlags dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId);
private string QueryProcessImageName(LowLevelTypes.ProcessQueryImageNameMode mode) { StringBuilder moduleBuffer = new StringBuilder(1024); int size = moduleBuffer.Capacity; NativeMethods.QueryFullProcessImageName( processHandle, mode, moduleBuffer, ref size); if (mode == LowLevelTypes.ProcessQueryImageNameMode.NATIVE_SYSTEM_FORMAT) moduleBuffer.Insert(0, "\\\\?\\GLOBALROOT"); return moduleBuffer.ToString(); }