Api

  • Автор темы orcommander
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

orcommander

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

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

orcommander

#3
Да, про него.
А ласт эррор говорит "Ошибка №1". В эррор лукапе - неверная функция.
 
04.09.2006
2 566
3
#4
А какая ОС? Требования к флагу видел?
Client - Requires Windows XP or Windows 2000 Professional.
Server - Requires Windows Server 2003 or Windows 2000 Server.
С этим все ОК?
 
O

orcommander

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

orcommander

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

orcommander

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

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

orcommander

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

Просто есть ANSI и UNICODE версии функций... :)
 
Статус
Закрыто для дальнейших ответов.