getvolumeinformation (kernel32)
Last changed: -213.79.90.226

.
Summary

C# Signature:

[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]

extern static bool GetVolumeInformation(

    string RootPathName,
    StringBuilder VolumeNameBuffer,
    int VolumeNameSize,
    out uint VolumeSerialNumber,
    out uint MaximumComponentLength,
    out uint FileSystemFlags,
    StringBuilder FileSystemNameBuffer,
    int nFileSystemNameSize);

User-Defined Types:

None.

Notes:

The VolumeSerialNumber is not optional with this signature!!!

Tips & Tricks:

If you specify RootPathName as a driveletter (eg not a volume name) then you have to terminate it with a backslash.

Sample Code:

StringBuilder volname = new StringBuilder(256);

StringBuilder fsname = new StringBuilder(256);

uint sernum, maxlen, flags;

if(!GetVolumeInformation("c:\\", volname.Capacity, out sernum, out maxlen, out flags, fsname, fsname.Capacity))

    Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());

string volnamestr = volname.ToString();

string fsnamestr = fsname.ToString();

Alternative Managed API:

Do you know one? Please contribute it!

Documentation