Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » ntdll.h

Ответить
Настройки темы
ntdll.h

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите найти хидер ntdll.h под W2k DDK - его нет в стандартной поставке DDK, а все экзамплы ссылаются на него... (

В DDK я ни разу не программирвал, теперь вот нужно наваять утилитку для сноса блокирующих ресурсы процессов...
В общем, беда.

Отправлено: 13:55, 28-01-2003

 

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать



Спасибо Билли Поттеру - всё получилось. Чёртов хидер сваял руками.

Отправлено: 18:02, 28-01-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Lood
Если чего надо конкретно - пиши, вроде разбираемся в меру сил в этом.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 18:27, 28-01-2003 | #3


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, надо

ZwQueryObject возвращает мне имя открытого файла в виде "\Device\HarddiskVolume2\TEMP\~DFA514.tmp"

Как мне получить соответствие "\Device\HarddiskVolume" его DosDevice ?
Рою DDK, зарылся уже поуши, а света пока нет...

Отправлено: 19:36, 28-01-2003 | #4


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Lood
1) ZwQueryinformationFile(что-то типа FileNameInformation) вернет тебе его сразу, если это возможно.

2) Это соответствие не всегда однозначно, так что вопрос ставишь некорректно. Примеры - subst и net use (кстати, имя будет \Device\LanmanRedirector\..) Если надо все - задача решается от обратного. Перечисляются все диски в виде DosDevice, для каждого строится имя в Native-формате и потом построчно они сравниваются, везде где совпало - потенциально возможное имя, выбирай любое.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 20:17, 28-01-2003 | #5


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, я неверно поставил вопрос.

Именно из-за возможных subst мне нужно получать имя в формате \Device\... (Я так понимаю, мапировка subst глубоко по-барабану в данном варианте).  
А вот насчёт возможности "net use" на локальный путь я забыл... Гм... придётся думать, как это обойти  

Я делаю небольшую консольную утилитку, которая будет сносить процессы, удерживающие файлы в определённых каталогах. С проблемой врагов, пролезших через сеть, я разобрался достаточно просто. А вот те, кто сидит в терминальных сессиях (имеет место быть терминальный сервер с кучей народу на нём) - из за этих гм... нехороших людей пришлось лезть в DDK.  

Затык у меня вот какой - как мне перевести имя логического диска из Dos формата в этот самый \Device\HarddiskVloume# ?

Отправлено: 20:38, 28-01-2003 | #6


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Lood
Пример такой функции (а их даже 2 будет) я приведу через пару дней на zw.nightmail.ru. Как время будет - залью ее туда.

Цитата:
А вот насчёт возможности "net use" на локальный путь я забыл... Гм... придётся думать, как это обойти  
Проблемы на самом деле нет. Эти файлы открываются на клиенте, у них префикс \Device\LanmanRedirector как я написал. А на сервере они открываются в процессе System с локальным именем.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 21:01, 28-01-2003 | #7


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov
Большое спасибо за помощь!

С net use действительно проблем нет - я их ловлю через NetApi.

А вот насчёт соответствия DosName-Device - не подскажешь хоть примерно, где рыть? Имя функции, дальше я сам разгребу... Нашел в реестре ключ HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices - но кажется это не совсем то, что надо...

Отправлено: 21:11, 28-01-2003 | #8


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Lood
http://zw.nightmail.ru/_filenam.htm
Толькопервая часть, но я так понял, у тебя проблем с получением имени файлв по хэндлу нет и с перечислением загруженных библиотек - тоже.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 17:07, 29-01-2003 | #9


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо, всё прекрасно работает.    

Но вот вопрос: при ZwQueryObject(..., ObjectNameInformation, ...) на некоторые процессы, а так же подвисшие приложения - моя прога тут же затягивает узел на той же вешалке.
В доке написано, что так и должно быть:
Цитата:
If the object to which the handle refers is a file object and the handle was opened for synchronous access (by specifying FILE_SYNCHRONOUS_IO_ALERT or FILE_SYNCHRONOUS_IO_NONALERT as CreateOptions), queries of this information class will be synchronized with other file operations on the handle.
Нет ли другого пути получить то же инфо?
Сейчас я отказался от анализа процессов, запущенных под SYSTEM account, чтобы не налететь на службы. Но любой подвешенный процесс вешает так же и мой...

Отправлено: 20:33, 29-01-2003 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » ntdll.h

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] c0000221 ntdll.dll hard error SultanOFF Microsoft Windows Vista 6 15-02-2012 09:31
Разное - Не запускаются программы. ntdll.dll Reindjer Лечение систем от вредоносных программ 2 08-12-2009 13:54
Установка - Помогите заменить ntdll.dll файл PulSar.CE194694 Microsoft Windows 2000/XP 12 18-06-2008 14:42
ntdll.dll в WinXP Guest Microsoft Windows 2000/XP 11 12-02-2004 02:11




 
Переход