Ejemplo n.º 1
0
        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);
                }
            }
Ejemplo n.º 2
0
 public DriverObjectInfoRow(DriverObjectInfo info)
 {
     this.info = info;
 }