Как я могу получить личность диска? - PullRequest
0 голосов
/ 14 апреля 2010

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

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

Большое спасибо!

1 Ответ

4 голосов
/ 14 апреля 2010

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

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

...