Api

Тема в разделе "MS Visual C++", создана пользователем orcommander, 3 янв 2007.

Статус темы:
Закрыта.
  1. orcommander

    orcommander Гость

    Народ, я в панике... не могу понять такой момент.
    Есть функция DeviceIoControl. С параметром GET_DISK_GEOMETRY - работает как положено, с параметром GET_BITMAP - возвращает код ошибки №1 - неверная функция. Все компилится, никаких ошибок про буфера там или еще что нету.... :(
    Пользуюсь студией 2005, диск пробовал открывать для асинхронного и синхронного режимов, пробовал давать права админа (хотя по умолчанию и так даются)... короче, тупик.
    Буду благодарен за любые мысли.
    Смысл использования данной функции - нужно написать дефрагментатор.
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Так а что говорит GetLastError?

    Если я правильно понял, то речь идет о флаге FSCTL_GET_VOLUME_BITMAP?
     
  3. orcommander

    orcommander Гость

    Да, про него.
    А ласт эррор говорит "Ошибка №1". В эррор лукапе - неверная функция.
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    А какая ОС? Требования к флагу видел?
    Client - Requires Windows XP or Windows 2000 Professional.
    Server - Requires Windows Server 2003 or Windows 2000 Server.
    С этим все ОК?
     
  5. orcommander

    orcommander Гость

    У меня XP SP2, так если я дефрагментатор пишу то я кто: сервер, клиент или...
     
  6. orcommander

    orcommander Гость

    Ага, посмотрел я про требования.
    IOCTL_DISK_GET_DRIVE_GEOMETRY - работает, если я сервер (про клиента понятно),
    а FSCTL_GET_VOLUME_BITMAP - не работает.
    Я в принципе не сильно себе представляю кто у меня клиент или сервер в случае дефрагментатора, но... простое сравнение говорит, что либо я клиент, либо оно должно работать и на сервере... ? :blink:
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Посмотри ЭТО и вот ЭТО - может чем поможет
     
  8. orcommander

    orcommander Гость

    ТО, ЧТО НАДО. Спасибо. С этим я разобрался.

    Но есть еще один момент. Не могу передать путь к диску в функцию FindFirstFile. Выдает либо ошибку 2 - не может путь найти, 3 - файл, 123 - синтаксическая ошибка.
    Как правильно передать?
    Были варианты... да в принципе каких только не было.
     
  9. orcommander

    orcommander Гость

    Сорри, все вопрос снят.
     
  10. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Так расскажи в чем проблема с DeviceIoControl была
     
  11. orcommander

    orcommander Гость

    Ну, в общем проще определенным образом приготовленной репы (читай моей тупизыны) некуда.

    Просто есть ANSI и UNICODE версии функций... :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей