GetProcessIoCounters (kernel32)
Last changed: -65.27.196.222

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern bool GetProcessIoCounters(IntPtr hProcess,
   out IO_COUNTERS lpIoCounters);

User-Defined Types:

IO_COUNTERS

Notes:

Note that the first parameter is a handle to a process.

Tips & Tricks:

Please add some!

Sample Code:

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool GetProcessIoCounters(IntPtr hProcess, out IO_COUNTERS lpIoCounters);

    [StructLayout(LayoutKind.Sequential)]
    struct IO_COUNTERS
    {
        public UInt64 ReadOperationCount;
        public UInt64 WriteOperationCount;
        public UInt64 OtherOperationCount;
        public UInt64 ReadTransferCount;
        public UInt64 WriteTransferCount;
        public UInt64 OtherTransferCount;
    };
    public IO_COUNTERS info;

    public void show_read_count()
    {
        if (GetProcessIoCounters(Process.GetCurrentProcess().Handle, out info) == false)
        {
            int error_code = Marshal.GetLastWin32Error();
            if (error_code != 0) Debug.WriteLine((new Win32Exception(error_code)).Message);
        }
        else
        {
            Debug.WriteLine(info.ReadOperationCount);
        }
    }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation