IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER

Тема в разделе "WASM.WIN32", создана пользователем GROWER, 30 июл 2005.

  1. GROWER

    GROWER New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    4
    Адрес:
    Kyiv
    Здраствуйте. Не подскажет ли кто, как определить серийный номер флешки. В 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. Делают же как-то люди ...
     
  2. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754




    это говорит о том, что в более ранних виндосах данный IOCTL не реализован.



    А что за серийный номер такой, чем его посмотреть можно?

    В структуре USB_DEVICE_DESCRIPTOR есть поле iSerialNumber, но оно размером всего байт, похоже это нето :dntknw:(