| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Определить путь к файлу по HANDLE |
| Автор: freezeman 15.2.2012, 20:41 |
| Здравствуйте! Подскажите, пожалуйста, у меня есть перехваченная функция ReadFile, как мне определить из какого файла на диске производилось чтение? Т.е. моя программа перехватив winapi функцию ReadFile из другой программы должна определить с какого файла на жестком диске или из ОП производится чтение... |
| Автор: 12usver12 15.2.2012, 21:53 |
| Vista++ GetFinalPathNameByHandle Vista-- http://msdn.microsoft.com/en-us/library/windows/desktop/aa366789(v=vs.85).aspx |
| Автор: freezeman 15.2.2012, 21:57 | ||
А я все не могу запустить её на XP...спасибо) |
| Автор: freezeman 16.2.2012, 09:29 | ||||
У вас компилируется http://msdn.microsoft.com/en-us/library/windows/desktop/aa366789(v=vs.85).aspx пример? Проверьте, пожалуйста, не знаю уже как по другому... у меня выдает две ошибки (создаю обычный консольный проект): Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _GetMappedFileNameW@16 в функции "int __cdecl GetFileNameFromHandle(void *)" (?GetFileNameFromHandle@@YAHPAX@Z) c:\Users\пользователь\documents\visual studio 2010\Projects\test\test\test.obj test Ошибка 2 error LNK1120: 1 неразрешенных внешних элементов c:\users\пользователь\documents\visual studio 2010\Projects\test\Debug\test.exe test |
| Автор: freezeman 16.2.2012, 12:56 | ||||||
Точно, получилось. Но когда открываю файл "c:\\text.txt" в CreateFile должно в результате выводиться его имя, а получаются "????". Подскажите, как так получается? |
| Автор: GremlinProg 16.2.2012, 13:05 | ||
ничего не понял, где получаются "????" ? p.s.: код в студию |
| Автор: freezeman 16.2.2012, 13:16 | ||||||
В общем задача в том, чтобы вывести путь к файлу по HANDLE Пытался так, но при выводе получаются вопросы...
|
| Автор: GremlinProg 17.2.2012, 07:04 |
| думаю, всю ветвь GetLogicalDriveStrings тут можно убрать вообще, т.к. она пытается подобрать для DOS-имени соответствующий ему том логического диска, думаю, для обычных файлов подбирать ничего не требуется, после вызова GetMappedFileName, pszFilename содержит корректный путь? |
| Автор: freezeman 17.2.2012, 09:17 | ||
Тоже не получилось, в общем мне нужно HANDLE преобразовать для того, что узнать функция читает данные из HHD или из ОП... может ReadFile в любом случае читает с жесткого диска?? |
| Автор: xvr 17.2.2012, 12:23 | ||
Это вы вряд ли узнаете. Да и HANDLE, указывающий на ОП, это нечто весьма необычное Нет, но в любом случае не из ОП (даже если читаемый файл лежит в RAM Disk'е) Добавлено через 6 минут и 23 секунды Вам нужна функция http://msdn.microsoft.com/en-us/library/bb432383%28v=VS.85%29.aspx |
| Автор: freezeman 17.2.2012, 12:51 | ||||
Спасибо, это и нужно мне было узнать...Я раньше не работал с WINAPI поэтому и подробностей не знаю)) |