Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Task.Monitor.Interop.Win32/ConsoleApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ public static class ConsoleApi
public const uint DISABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0008;

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
public static extern bool GetConsoleMode(nint hConsoleHandle, out uint lpMode);

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
public static extern bool SetConsoleMode(nint hConsoleHandle, uint dwMode);
}
57 changes: 28 additions & 29 deletions src/Task.Monitor.Interop.Win32/Kernel32.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,54 +12,53 @@ public static class Kernel32
public const uint PROCESS_NAME_WIN32 = 0;
public const uint PROCESS_NAME_NATIVE = 1;

public static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
public static readonly nint INVALID_HANDLE_VALUE = -1;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct PROCESSENTRY32W
public unsafe struct PROCESSENTRY32W
{
public uint dwSize;
public uint cntUsage;
public uint th32ProcessID;
public UIntPtr th32DefaultHeapID;
public uint th32ModuleID;
public uint cntThreads;
public uint th32ParentProcessID;
public int pcPriClassBase;
public uint dwFlags;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)]
public string szExeFile;
public uint dwSize;
public uint cntUsage;
public uint th32ProcessID;
public nuint th32DefaultHeapID;
public uint th32ModuleID;
public uint cntThreads;
public uint th32ParentProcessID;
public int pcPriClassBase;
public uint dwFlags;
public fixed char szExeFile[MAX_PATH];
}

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern bool CloseHandle(IntPtr hObject);
public static extern bool CloseHandle(nint hObject);

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern IntPtr CreateToolhelp32Snapshot(uint dwFlags, uint th32ProcessID);
public static extern nint CreateToolhelp32Snapshot(uint dwFlags, uint th32ProcessID);

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern bool GetProcessTimes(
IntPtr hProcess,
out MinWinBase.FILETIME lpCreationTime,
out MinWinBase.FILETIME lpExitTime,
out MinWinBase.FILETIME lpKernelTime,
out MinWinBase.FILETIME lpUserTime);
public static extern unsafe bool GetProcessTimes(
nint hProcess,
MinWinBase.FILETIME* lpCreationTime,
MinWinBase.FILETIME* lpExitTime,
MinWinBase.FILETIME* lpKernelTime,
MinWinBase.FILETIME* lpUserTime);

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern IntPtr OpenProcess(
public static extern nint OpenProcess(
uint dwDesiredAccess,
bool bInheritHandle,
uint dwProcessId);

[DllImport(Libraries.Kernel32, SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool Process32FirstW(IntPtr hSnapshot, ref PROCESSENTRY32W lppe);
public static extern unsafe bool Process32FirstW(nint hSnapshot, PROCESSENTRY32W* lppe);

[DllImport(Libraries.Kernel32, SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool Process32NextW(IntPtr hSnapshot, ref PROCESSENTRY32W lppe);
public static extern unsafe bool Process32NextW(nint hSnapshot, PROCESSENTRY32W* lppe);

[DllImport(Libraries.Kernel32, SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool QueryFullProcessImageNameW(
IntPtr hProcess,
public static extern unsafe bool QueryFullProcessImageNameW(
nint hProcess,
uint dwFlags,
StringBuilder lpExeName,
ref uint lpdwSize);
}
char* lpExeName,
uint* lpdwSize);
}
34 changes: 18 additions & 16 deletions src/Task.Monitor.Interop.Win32/Pdh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,41 +10,43 @@ public static class Pdh
[StructLayout(LayoutKind.Sequential)]
public struct PDH_RAW_COUNTER {
public uint CStatus;
public System.Runtime.InteropServices.ComTypes.FILETIME TimeStamp;
public MinWinBase.FILETIME TimeStamp;
public long FirstValue;
public long SecondValue;
public uint MultiCount;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct PDH_RAW_COUNTER_ITEM {
[MarshalAs(UnmanagedType.LPWStr)] public string szName;
[MarshalAs(UnmanagedType.LPWStr)]
public string szName;
public PDH_RAW_COUNTER RawValue;
}

[DllImport(Libraries.Pdh, CharSet = CharSet.Unicode)]
public static extern uint PdhOpenQuery(
public static extern unsafe uint PdhOpenQuery(
[MarshalAs(UnmanagedType.LPWStr)]
string? szDataSource,
IntPtr dwUserData,
out IntPtr phQuery);
nint dwUserData,
nint* phQuery);

[DllImport(Libraries.Pdh, CharSet = CharSet.Unicode)]
public static extern uint PdhAddEnglishCounter(
IntPtr hQuery,
public static extern unsafe uint PdhAddEnglishCounter(
nint hQuery,
string szFullCounterPath,
IntPtr dwUserData,
out IntPtr phCounter);
nint dwUserData,
nint* phCounter);

[DllImport(Libraries.Pdh)]
public static extern uint PdhCollectQueryData(IntPtr hQuery);
public static extern uint PdhCollectQueryData(nint hQuery);

[DllImport(Libraries.Pdh, CharSet = CharSet.Unicode)]
public static extern uint PdhGetRawCounterArray(
IntPtr hCounter,
ref uint lpdwBufferSize,
ref uint lpdwItemCount,
IntPtr ItemBuffer);
public static extern unsafe uint PdhGetRawCounterArray(
nint hCounter,
uint* lpdwBufferSize,
uint* lpdwItemCount,
nint ItemBuffer);

[DllImport("pdh.dll")]
public static extern uint PdhCloseQuery(IntPtr hQuery);
public static extern uint PdhCloseQuery(nint hQuery);
}
2 changes: 1 addition & 1 deletion src/Task.Monitor.Interop.Win32/ProcessEnv.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ public static class ProcessEnv
public const int STD_INPUT_HANDLE = -10;

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern IntPtr GetStdHandle(int nStdHandle);
public static extern nint GetStdHandle(int nStdHandle);
}
8 changes: 4 additions & 4 deletions src/Task.Monitor.Interop.Win32/PsApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ public struct PROCESS_MEMORY_COUNTERS
}

[DllImport(Libraries.PsApi, SetLastError = true)]
public static extern bool GetProcessMemoryInfo(
IntPtr hProcess,
ref PROCESS_MEMORY_COUNTERS psmemCounters,
public static extern unsafe bool GetProcessMemoryInfo(
nint hProcess,
PROCESS_MEMORY_COUNTERS* psmemCounters,
uint cb);
}
}
18 changes: 9 additions & 9 deletions src/Task.Monitor.Interop.Win32/SysInfoApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ public static unsafe class SysInfoApi
[StructLayout(LayoutKind.Sequential)]
public struct MEMORYSTATUSEX
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwLength;
public uint dwMemoryLoad;
public ulong ullTotalPhys;
public ulong ullAvailPhys;
public ulong ullTotalPageFile;
Expand All @@ -27,13 +27,13 @@ public struct SYSTEM_INFO
{
public ushort wProcessorArchitecture;
public ushort wReserved;
public uint dwPageSize;
public uint* lpMinimumApplicationAddress;
public uint* lpMaximumApplicationAddress;
public uint* dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public uint dwPageSize;
public uint* lpMinimumApplicationAddress;
public uint* lpMaximumApplicationAddress;
public uint* dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public ushort wProcessorLevel;
public ushort wProcessorRevision;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Task.Monitor.Interop.Win32/WinNt.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public struct IO_COUNTERS
public unsafe struct SID_AND_ATTRIBUTES
{
public uint* Sid;
public uint Attributes;
public uint Attributes;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
Expand All @@ -29,5 +29,5 @@ public struct TOKEN_USER
}

[DllImport(Libraries.Kernel32, SetLastError = true)]
public static extern bool GetProcessIoCounters(IntPtr hProcess, out IO_COUNTERS counters);
public static extern unsafe bool GetProcessIoCounters(nint hProcess, IO_COUNTERS* counters);
}
74 changes: 27 additions & 47 deletions src/Task.Monitor.Interop.Win32/WinService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ public struct ENUM_SERVICE_STATUS_PROCESS
{
public string lpServiceName;
public string lpDisplayName;
public int dwServiceType;
public int dwCurrentState;
public int dwControlsAccepted;
public int dwWin32ExitCode;
public int dwServiceSpecificExitCode;
public int dwCheckPoint;
public int dwWaitHint;
public int dwProcessId;
public int dwServiceFlags;
public int dwServiceType;
public int dwCurrentState;
public int dwControlsAccepted;
public int dwWin32ExitCode;
public int dwServiceSpecificExitCode;
public int dwCheckPoint;
public int dwWaitHint;
public int dwProcessId;
public int dwServiceFlags;
}

[StructLayout(LayoutKind.Sequential)]
Expand All @@ -67,60 +67,40 @@ public struct SERVICE_STATUS_PROCESS

[DllImport(Libraries.Advapi32, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool CloseServiceHandle(IntPtr hSCObject);

[DllImport(Libraries.Advapi32, SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateService(
IntPtr hSCManager,
string lpServiceName,
string lpDisplayName,
uint dwDesiredAccess,
uint dwServiceType,
uint dwStartType,
uint dwErrorControl,
string lpBinaryPathName,
string lpLoadOrderGroup,
string lpdwTagId,
string lpDependencies,
string lpServiceStartName,
string lpPassword);

[DllImport(Libraries.Advapi32, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool DeleteService(IntPtr hService);
public static extern bool CloseServiceHandle(nint hSCObject);

[DllImport(Libraries.Advapi32, EntryPoint = "EnumServicesStatusExW", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool EnumServicesStatusEx(
IntPtr hSCManager,
public static extern unsafe bool EnumServicesStatusEx(
nint hSCManager,
uint InfoLevel,
uint dwServiceType,
uint dwServiceState,
IntPtr lpServices,
nint lpServices,
uint cbBufSize,
out uint pcbBytesNeeded,
out uint lpServicesReturned,
ref uint lpResumeHandle,
uint* pcbBytesNeeded,
uint* lpServicesReturned,
uint* lpResumeHandle,
string pszGroupName);

[DllImport(Libraries.Advapi32, SetLastError = true)]
public static extern IntPtr OpenSCManager(
public static extern nint OpenSCManager(
string lpMachineName,
string lpDatabaseName,
int dwDesiredAccess);

[DllImport(Libraries.Advapi32, SetLastError = true)]
public static extern IntPtr OpenService(
IntPtr hSCManager,
public static extern nint OpenService(
nint hSCManager,
string lpServiceName,
int dwDesiredAccess);
int dwDesiredAccess);

[DllImport(Libraries.Advapi32, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool QueryServiceStatusEx(
IntPtr hService,
int InfoLevel,
IntPtr lpBuffer,
uint cbBufSize,
out uint pcbBytesNeeded);
}
public static extern unsafe bool QueryServiceStatusEx(
nint hService,
int InfoLevel,
nint lpBuffer,
uint cbBufSize,
uint* pcbBytesNeeded);
}
2 changes: 1 addition & 1 deletion src/Task.Monitor.Interop.Win32/WinUser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ public static class WinUser
public const uint GR_USEROBJECTS = 1;

[DllImport(Libraries.User32)]
public static extern uint GetGuiResources(IntPtr hProcess, uint uiFlags);
public static extern uint GetGuiResources(nint hProcess, uint uiFlags);
}
Loading
Loading