![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поучение геометрии флоппи диска.
Riply © (2007-05-28 08:31:00)Здравствуйте !
Пытаюсь использовать DeviceIoControl(..., IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,...
для поучение геометрии флоппика. Но DeviceIoControl возвращает ошибку: ERROR_INVALID_FUNCTION.
В чем может быть причина ?
P.S.
Ошибка с GEOMETRY_EX возникает только для флоппи.
Если использовать IOCTL_DISK_GET_DRIVE_GEOMETRY, то все работает,
но очень не хотелось бы так поступать, т.к. в Help-е сказано,
что IOCTL_DISK_GET_DRIVE_GEOMETRY - устарела.
(Только не говорите, что сам флоппик устарел. Он еще долго будет с нами :)
Сергей М. (2007-05-28 14:08:00) [21]
> Riply © (28.05.07 13:58) [17]
Приведи код в максимально упрощенном функциональном фарианте - я попробую у себя его протестировать ..
Riply (2007-05-28 13:58:00) [22]> [16] Сергей М. © (28.05.07 13:51)
>Ты бы хоть ОС свою обозначила ..
WinXP SP2
>[15] Riply © (28.05.07 13:47)
Забыла главное написать:
Очень хочется понять причину этого, чтобы не напороться в другом месте.
Может я его неправильно открываю ?
CreateFileA('\\.\A:',....
Сергей М. (2007-05-28 13:51:00) [23]
> Riply © (28.05.07 13:47) [15]
Ты бы хоть ОС свою обозначила ..
Riply (2007-05-28 13:47:00) [24]> [14] Сергей М. © (28.05.07 13:37)
>Но с учетом "не считаю, что Vista - это модно" волноваться за "устарелость" пока нет повода)
Есть еще один момент:
Со всеми (кроме флоппика) я работаю с "EX - кодами".
Написала несколько "универсальных" процедур для работы.
А DRIVE_GEOMETRY в эту стройную картинку никак не вписывается. Не очень хочется делать так:
Если флоопик, то это, иначе то :)
И еще: случай с ним означает, что не исключены варианты подобных ошибок и с другими Device-ми
Сергей М. (2007-05-28 13:37:00) [25]
> Riply © (28.05.07 13:32) [13]
> Как просил, тыкаю
Уткнулся, вижу)
Но с учетом "не считаю, что Vista - это модно" волноваться за "устарелость" пока нет повода)
Riply (2007-05-28 13:32:00) [26]>[10] Сергей М. © (28.05.07 13:22)
>Вот оригинал:
> http://msdn2.microsoft.com/en-us/library/aa365169.aspx
>Где там слово "obsolete" ? Ткни меня носом ...
Как просил, тыкаю :) http://msdn2.microsoft.com/en-us/library/aa363979.aspx
>[12] Сергей М. © (28.05.07 13:25)
>А не ты ли, барышня, не так давно жаловалась, что до Висты и ДлинногоРога пока не доросла ?)
Во-первых: не все сразу. Стараюсь расти :)
Во-вторых, я не считаю, что Vista - это модно :)
Сергей М. (2007-05-28 13:25:00) [27]
> Riply © (28.05.07 13:23) [11]
> Зато - модница !
А не ты ли, барышня, не так давно жаловалась, что до Висты и ДлинногоРога пока не доросла ?)
Riply (2007-05-28 13:23:00) [28]>[9] clickmaker © (28.05.07 13:16)
>судя по анкете, ты вовсе не пацан. Так что можно )
Зато - модница ! Разве я могу одеть(исползовать) то, что уже вышло из моды ? :)
Сергей М. (2007-05-28 13:22:00) [29]
> Riply © (28.05.07 13:14) [8]
Вот оригинал:
http://msdn2.microsoft.com/en-us/library/aa365169.aspx
Где там слово "obsolete" ? Ткни меня носом ...
Может поэтому ИШ порекомендовал "забыть" такой help, который по сути дублируя оригинал существенно искажает его содержимое ?
clickmaker (2007-05-28 13:16:00) [30]
> Реальные пацаны ее уже не используют :)
судя по анкете, ты вовсе не пацан. Так что можно )
Riply (2007-05-28 13:14:00) [31]> [7] Сергей М. © (28.05.07 12:59)
>Ну и где тут про "устарела" ?
The following are obsolete control codes.
IOCTL_DISK_GET_DRIVE_GEOMETRY
obsolete [ ] 1) устарелый; вышедший из употребления; старомодный
Т.е. Не в моде :) Реальные пацаны ее уже не используют :)
Сергей М. (2007-05-28 12:59:00) [32]
> Riply © (28.05.07 12:50) [6]
Ну и где тут про "устарела" ?
IOCTL_DISK_GET_DRIVE_GEOMETRY, согласно msdn, "живет" на всех системах, кроме маздая, в то время как заменяющая (но не отменяющая !!) ее EX-версия "живет" только на ХР/Vista/Longhorn/2003.
Riply (2007-05-28 12:50:00) [33]> [5] Сергей М. © (28.05.07 12:36)
>Где такой help живет ?
:)
Такой неправильный Help живет в BDS 2006 :)
The IOCTL_DISK_GET_DRIVE_GEOMETRY control code retrieves information about the physical disk's geometry:
type, number of cylinders, tracks per cylinder, sectors per track, and bytes per sector.
Note IOCTL_DISK_GET_DRIVE_GEOMETRY has been superseded by IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
which retrieves additional information.
..........
..........
The following are obsolete control codes.
IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL_DISK_GET_DRIVE_LAYOUT
IOCTL_DISK_GET_PARTITION_INFO
IOCTL_DISK_SET_DRIVE_LAYOUT
IOCTL_DISK_SET_PARTITION_INFO
Platform SDK Release: February 2003
Сергей М. (2007-05-28 12:36:00) [34]
> в Help-е сказано,
> что IOCTL_DISK_GET_DRIVE_GEOMETRY - устарела
Где такой help живет ?
В D7 никакая "устарелость" по этому поводу не фигурирует ..
Riply (2007-05-28 11:16:00) [35]> [3] Игорь Шевченко © (28.05.07 11:13)
> Забудь про HELP
"Это как-это, это как-это ?" (с) Чья - не помню :)
Кому же, тогда, верить ?
Игорь Шевченко (2007-05-28 11:13:00) [36]
> Если использовать IOCTL_DISK_GET_DRIVE_GEOMETRY, то все
> работает,
> но очень не хотелось бы так поступать, т.к. в Help-е сказано,
>
> что IOCTL_DISK_GET_DRIVE_GEOMETRY - устарела.
Забудь про HELP
Riply (2007-05-28 11:09:00) [37]> [1] DrPass © (28.05.07 10:46)
>А операционка какая?
XP SP2
>кстати, а стоит ли сейчас писать программу, уже на работающую на Вынь2000?
А эту фразу не поняла. Поясни, пожалуйста.
DrPass (2007-05-28 10:46:00) [38]А операционка какая? Этот код AFAIK только на ХР и старше работает (кстати, а стоит ли сейчас писать программу, уже на работающую на Вынь2000?)