You will need these declaration in NativeMethods.
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern IntPtr FindFirstVolume(
[Out] StringBuilder lpszVolumeName,
[In] int cchBufferLength);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern int FindNextVolume(
[In]IntPtr hFindVolume,
[Out] StringBuilder lpszVolumeName,
[In] int cchBufferLength);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern int FindVolumeClose(
[In]IntPtr hFindVolume);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern IntPtr FindFirstVolumeMountPoint(
[In] string lpszRootPathName,
[Out] StringBuilder lpszVolumeMountPoint,
[In] int cchBufferLength);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern int FindVolumeMountPointClose(
[In] IntPtr hFindVolumeMountPoint);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern int GetVolumePathName(
[In] string lpszFileName,
[Out] StringBuilder lpszVolumePathName,
[In] int cchBufferLength);
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern int GetVolumePathNamesForVolumeName(
[In] string lpszVolumeName,
[Out] StringBuilder lpszVolumePathNames,
[In] int cchBufferLength,
[Out] out int lpcchReturnLength);