public List <DriverObjectInfo> ScanKernel() { if (DriverHandle.IsInvalid) { throw new Exception("No connection with kernel driver!"); } List <DriverObjectInfo> ret = new List <DriverObjectInfo>(); int count = 350; //this should be enough, usually they are less then 100 IntPtr objectArray = Marshal.AllocHGlobal(Marshal.SizeOf <DriverObject>() * count); if (ReadFile(DriverHandle, objectArray, Marshal.SizeOf <DriverObject>() * count, out uint bytesRead, IntPtr.Zero)) { for (int a = 0; a < bytesRead / Marshal.SizeOf <DriverObject>(); a++) { var obj = Marshal.PtrToStructure <DriverObject>(objectArray + Marshal.SizeOf <DriverObject>() * a); var info = new DriverObjectInfo(); info.Name = obj.Name; info.Result = obj.Result.ToString(); ret.Add(info); } }
public DriverObjectInfoRow(DriverObjectInfo info) { this.info = info; }