コード例 #1
0
        internal static FileSystemUsage NativeGet(Hyperic.Sigar.Sigar sigar, string dirname)
        {
            Type   type  = typeof(FileSystemUsage);
            IntPtr num   = Marshal.AllocHGlobal(Marshal.SizeOf(type));
            int    errno = FileSystemUsage.sigar_file_system_usage_get(sigar.sigar.Handle, dirname, num);

            if (errno != 0)
            {
                Marshal.FreeHGlobal(num);
                throw Hyperic.Sigar.Sigar.FindException(sigar, errno);
            }
            FileSystemUsage structure = (FileSystemUsage)Marshal.PtrToStructure(num, type);

            Marshal.FreeHGlobal(num);
            return(structure);
        }
コード例 #2
0
ファイル: Sigar.cs プロジェクト: murisfurder/sigar
        internal static FileSystemUsage NativeGet(Sigar sigar,
                                                  string dirname)
        {
            Type   type = typeof(FileSystemUsage);
            IntPtr ptr  = Marshal.AllocHGlobal(Marshal.SizeOf(type));

            int status = sigar_file_system_usage_get(sigar.sigar.Handle,
                                                     dirname, ptr);

            if (status != Sigar.OK)
            {
                Marshal.FreeHGlobal(ptr);
                throw Sigar.FindException(sigar, status);
            }

            FileSystemUsage fsusage =
                (FileSystemUsage)Marshal.PtrToStructure(ptr, type);

            Marshal.FreeHGlobal(ptr);

            return(fsusage);
        }