using System; using System.Runtime.InteropServices; namespace ProcessHacker2.Api { [StructLayout(LayoutKind.Sequential)] public unsafe struct AnsiString { public ushort Length; public ushort MaximumLength; public void* Buffer; } [StructLayout(LayoutKind.Sequential)] public struct ClientId { public IntPtr UniqueProcess; public IntPtr UniqueThread; } [StructLayout(LayoutKind.Sequential)] public unsafe struct ObjectAttributes { public int Length; public IntPtr RootDirectory; public UnicodeString* ObjectName; public int Attributes; public void* SecurityDescriptor; public void* SecurityQualityOfService; } public enum ObjectFlags { Inherit = 0x2, Permanent = 0x10, Exclusive = 0x20, CaseInsensitive = 0x40, OpenIf = 0x80, OpenLink = 0x100, KernelHandle = 0x200, ForceAccessCheck = 0x400 } [StructLayout(LayoutKind.Sequential)] public unsafe struct UnicodeString { public ushort Length; public ushort MaximumLength; public void* Buffer; } public enum WaitType { All, Any } }