· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Ответ для Four-F

Посл.отвђт Сообщенiе


Дата: Апр 15, 2004 12:19:35

Ответ по вопросу "Вопрос для Four-F"

Требуется корректная обработка следующих команд для драйвера диска:
IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL_DISK_GET_PARTITION_INFO
IOCTL_DISK_GET_LENGTH_INFO
IOCTL_MOUNTDEV_QUERY_DEVICE_NAME
IOCTL_DISK_SET_PARTITION_INFO
IOCTL_DISK_VERIFY
IOCTL_DISK_CHECK_VERIFY
IOCTL_DISK_IS_WRITABLE
IOCTL_DISK_MEDIA_REMOVAL
IOCTL_DISK_GET_PARTITION_INFO_EX

В этом случае драйвер работает нормально во всех ОС :))) Даже форматирует NTSF и FAT.
В последней команде есть "засада" для ASM... ОС (WinXP) требует от драйвера структуру:

PARTITION_INFORMATION_EX struct
PartitionStyle DWORD ?
align 8
StartingOffset LARGE_INTEGER <>
PartitionLength LARGE_INTEGER <>
PartitionNumber ULONG ?
RewritePartition BOOLEAN ?
align 4
union
MBR PARTITION_INFORMATION_MBR <>
GPT PARTITION_INFORMATION_GPT <>
ends
PARTITION_INFORMATION_EX ends
PPARTITION_INFORMATION_EX typedef ptr PARTITION_INFORMATION_EX

где:

PARTITION_INFORMATION_MBR struct
PartitionType UCHAR ?
BootIndicator BOOLEAN ?
RecognizedPartition BOOLEAN ?
align 2
HiddenSectors ULONG ?
PARTITION_INFORMATION_MBR ends

PARTITION_INFORMATION_GPT struct
PartitionType GUID <>
PartitionId GUID <>
Attributes LARGE_INTEGER <>
_Name WORD 36 dup(?)
PARTITION_INFORMATION_GPT ends

Следует обратить внимание на align, без выравнивания ОС не понимает данные, предлагаю эти структуры внести в KmdKit, для следующих поколений...
P.S.
Жалко убитого времени на разбор полетов...
Если нужен исходник, могу выслать


Дата: Апр 15, 2004 13:10:29 · Поправил: Four-F

Большое спасибо. Я после того поста уже кое-что прикрутил.

[ ChS: ...предлагаю эти структуры внести в KmdKit, для следующих поколений... ]

Да без проблем. Вот только, что с align 8 делять? Придется репу чесать.


[ ChS: Если нужен исходник, могу выслать ]

Буду премного благодарен.


ЗЫ: Если я всё это прикручу, сможешь протестить на доступных тебе системах? Просто у мя нет возможности под англицкой ХР погонять.


Дата: Апр 15, 2004 14:59:53

Проверить могу на рус. и англ. XP, а так же рус. Win2000. У меня в ОС установлена Virtual PC... Есть машина с англ. XP. Могу проверить хоть на Вынь 98 :)))


Дата: Апр 15, 2004 17:43:55

Да у меня самого этих осей... но вот англ ХР нет, а бегать искать лень. Спасибо за исходник.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069