Здраствуйте. Не подскажет ли кто, как определить серийный номер флешки. В MSDN написано что для этого используется параметр в фун-и DeviceIOControl IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER.
Requirements
Client Requires Windows "Longhorn" or Windows XP.
Server Requires Windows Server "Longhorn" or Windows Server 2003.
Header Declared in Winioctl.h.
А как сделать на win2000 ? Там в файле <Winioctl.h> нет описания IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER. Пробовал вставлять #define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS), возвращаяет GetLastError = 50 (сетевой запрос не поддерживается). Нашёл в файле diskid32.cpp подключение таких header'ов : (правда закоментированных)
// special include from the MS DDK
//#include "c:\win2kddk\inc\ddk\ntddk.h"
//#include "c:\win2kddk\inc\ntddstor.h"
Скачал win2kddk, подключил, не компилится. Может дело в ServicePack'ах, а то у меня ни один не стоит , ни под VC++ 6.0, ни под Win2000prof. Делают же как-то люди ...
Re: Серийный номер USB ( IOCTL_STORAGE_GET_MEDIA_SERIAL_NUM
От:
Аноним
Дата:
30.07.05 21:57
Оценка:
Здравствуйте, GROWER, Вы писали:
[...skipped...]
IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER не поддерживается в 2000, да и в XP работает далеко не для всех флешек.
Серийный номер лучше узнавать из USB-дескриптора устройства, смотрите пример в ddk — usbview (warning: некоторые старые флешки не имеют и такого номера).