Get filepath by handle (NtQueryObject, NtQueryInformationFi)
От: BioUnit Россия  
Дата: 19.11.07 20:27
Оценка:
Пытаюсь получить путь к файлу по его хендлу.
Делаю это двумя способами:
1) NtQueryInformationFile(...., FileNameInformation) — возвращает путь но без буквы логического диска, т.е. "\dir\filename.ext"

2) NtQueryObject(...., ObjectNameInformation) — возвращает системный путь от устройства, т.е.
"\Device\HarddiskVolume4\dir\filename.ext"

Как бы мне получить путь в DOS виде "C:\dir\filename.ext" или "\??\C:\dir\filename.ext" ?

Нашел такую вот функцию RtlNtPathNameToDosPathName, но не смог заставить её работать.
Re: Get filepath by handle (NtQueryObject, NtQueryInformatio
От: Unmanaged Россия ICQ 476611995
Дата: 19.11.07 20:54
Оценка:
BU>Как бы мне получить путь в DOS виде "C:\dir\filename.ext" или "\??\C:\dir\filename.ext" ?

lol

Не обижайся, но мы только что обсуждали сию проблему вот в этой
Автор: ScorpeeOn
Дата: 16.11.07
ветке.
Ответ на твой вопрос можно найти в одном из моих сообщений, конкретно это
Автор: Unmanaged
Дата: 19.11.07
, внизу.
Там даже исходник есть, как реализовать сие в User-Mode.

BU>Нашел такую вот функцию RtlNtPathNameToDosPathName, но не смог заставить её работать.


Данная функция существует только начиная с Windows XP.
Это всё, что мне о ней известно.
STATUS_INVALID_DEVICE_REQUEST
Re[2]: Get filepath by handle (NtQueryObject, NtQueryInforma
От: BioUnit Россия  
Дата: 19.11.07 21:41
Оценка:
Здравствуйте, Unmanaged, Вы писали:

U>Там даже исходник есть, как реализовать сие в User-Mode.


Спасибо. Похоже то, что надо. Направление действий уж точно понятно.
Re: Get filepath by handle (NtQueryObject, NtQueryInformatio
От: Аноним  
Дата: 19.11.07 21:53
Оценка:
А зачем? Чем не устраивает нативный путь к файлу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.