Как я могу получить идентификатор диска?

Я хочу идентифицировать диск на С++ в моем приложении Windows. Например: У меня есть диск на E:\ Затем я сменил диск, и заменил его на другой. имя по-прежнему E:\ Как я могу знать, что диск изменен, это не оригинальный?

Если у меня нет приоритета администратора в win7, могу ли я использовать какой-либо метод для идентификации разных дисков?

Many thanks!


person sxingfeng    schedule 14.04.2010    source источник


Ответы (1)


Вероятно, соответствующие методы:

GetLogicalDrives()

BOOL WINAPI GetVolumeInformation( __in_opt LPCTSTR lpRootPathName, __out LPTSTR lpVolumeNameBuffer, __in DWORD nVolumeNameSize, __out_opt LPDWORD lpVolumeSerialNumber, __out_opt LPDWORD lpMaximumComponentLength, __out_opt LPDWORD lpFileSystemFlags, __out LPTSTR lpFileSystemNameBuffer, __in DWORD nFileSystemNameSize )

GetDriveType(string vol)

GetVolumeInformation предоставит вам серийный номер. Если этого недостаточно, вам, вероятно, придется прибегнуть к WMI_PhysicalMedia. Я считаю, что все это должно работать без прав администратора.

Страница со списком соответствующих функций находится здесь: http://msdn.microsoft.com/en-us/library/aa365730(v=VS.85).aspx

person Nick Fortescue    schedule 14.04.2010