eXeL@B —› Программирование —› Получить имя файла по его хэндлу |
Посл.ответ | Сообщение |
|
Создано: 04 декабря 2009 00:35 · Личное сообщение · #1 Всем привет. Столкнулся с такой вот бедой ... Нужно из хэндла файла (который выдаёт CreateFile) получить его имя. вот как бы примерный код, который нормально работает именно на файлах: (ахтунг! код на говно-дэлфи) Code:
для файла "c:\boot.ini" оно нормально получает хэндл и строку вида "\Device\HarddiskVolume1\boot.ini" Проблема вот в чём. Если был создан хэндл для "\.\PhysicalDrive0" (через этот идентификатор DeviceIoControl читает серийник HDD) - этот код уже не работает. CreateFileMapping возвращает 0. GetLastError() показывает что произошла ошибка 193 (ERROR_BAD_EXE_FORMAT = 193) Подскажите, может быть есть какие-нибудь другие варианты получения имени из хэндлов? код не обязательно приводить именно на дэлфи, думаю с других языков смогу перевести. |
|
Создано: 04 декабря 2009 00:47 · Личное сообщение · #2 |
|
Создано: 04 декабря 2009 00:49 · Личное сообщение · #3 SLV пишет: Гугл же... ZwQuerySystemInformation. MSDN ZwQueryInformationFile ----- PGP key |
|
Создано: 04 декабря 2009 00:53 · Поправил: tihiy_grom · Личное сообщение · #4 |
|
Создано: 04 декабря 2009 00:59 · Личное сообщение · #5 |
|
Создано: 04 декабря 2009 20:00 · Личное сообщение · #6 ntldr К сожалению тоже не получилось Code:
Как и в первом варианте - этот код с файлами работает на ура, а с "\.\PhysicalDrive0" справиться не может. |
|
Создано: 04 декабря 2009 20:23 · Личное сообщение · #7 В таком случае только драйвер, в котором будет использоваться связка ObReferenceObjectByHandle / ObQueryNameString. Работает 100%. ----- PGP key |
|
Создано: 04 декабря 2009 20:28 · Личное сообщение · #8 |
|
Создано: 04 декабря 2009 21:04 · Личное сообщение · #9 |
|
Создано: 05 декабря 2009 18:29 · Поправил: HiEndsoft · Личное сообщение · #10 |
|
Создано: 05 декабря 2009 18:34 · Личное сообщение · #11 |
|
Создано: 05 декабря 2009 20:17 · Поправил: tihiy_grom · Личное сообщение · #12 Аллах акбар, всё получилось вот код, если кому пригодится Code:
Всем спасибо за ответы и за помощь. P.S. HiEndsoft,теперь ты мой кумир |
eXeL@B —› Программирование —› Получить имя файла по его хэндлу |
Эта тема закрыта. Ответы больше не принимаются. |