Я использую этот код для получения серийного тома
[DllImport("Kernel32.dll", SetLastError = true)]
extern static bool GetVolumeInformation(string vol, StringBuilder name, int nameSize, out uint serialNum, out uint maxNameLen, out uint flags, StringBuilder fileSysName, int fileSysNameSize);
public static uint GetVolumeSerial(string strDriveLetter)
{
uint serialNum, maxNameLen, flags;
bool ok = GetVolumeInformation(strDriveLetter, null, 0, out serialNum,out maxNameLen, out flags, null, 0);
return serialNum;
}
Он отлично работает, за исключением того, что когда я работаю администратором через повышение уровня UAC манифеста приложения, он всегда возвращает 0 для подключенных сетевых дисковно это работает иначе)
Возможно, администратор по какой-то причине не видит подключенный диск (можно подумать, что это было наоборот).Есть ли способ обойти это или просто вызывать этот код как зарегистрированный пользователь вместо этого?
Я на 64-битной Windows 7, но запускаю приложение в режиме x86