ZwQuerySystemInformation не работает
От: Deviant26 Россия  
Дата: 06.04.05 10:05
Оценка:
Задача — список процессов. Всё делаю по статье http://www.rsdn.ru/article/qna/baseserv/enumproc.xml
Автор(ы): Александр Федотов
Дата: 23.10.2001
В статье рассматривается несколько способов перечисления процессов
в Windows различных версий, включая методы, пригодные для перечисления
процессов на другом компьютере.
, выбрал второй вариант (т.к. только он работает под чистым NT4). Компилирую под C++ Builder 5, WinXP.
Всё работает, но там, где "Status = _ZwQuerySystemInformation..." оно возвращает в Status отрицательное значение: "-173741819". Дальше всё доходит до фрагмента кода:
"HeapFree(hHeap, 0, pBuffer); return SetLastError(Status), FALSE;", и на этом выполнение прекращается.
Что делать? Как сделать, чтобы всё работало? Заранее — огромное спасибо

P.S. На RSDN я новичок, так что не судите строго за неправильное цитирование кода (?), и т.д...
устроит любой вариант, но лучше другой...
Re: ZwQuerySystemInformation не работает
От: Deviant26 Россия  
Дата: 06.04.05 10:07
Оценка:
Я ошибся. Не второй вариант, а третий ("Способ 3. Использование функции ZwQuerySystemInformation")
устроит любой вариант, но лучше другой...
Re: ZwQuerySystemInformation не работает
От: Deviant26 Россия  
Дата: 06.04.05 14:21
Оценка: 1 (1)
Вот, нашел ссылку на книгу Gary Nebbett

http://www.volynkin.com/references.htm (в самом низу этой страницы)

Пока качаю, запишу тут свои мысли по поводу темы:
Может, возвращение отрицательного Status'а — это не просто так, а какой-то знак? Точно. А на что этот знак указывает? Наверно, надо запускать с правами админа, а не юзера, тогда всё будет OK??...
устроит любой вариант, но лучше другой...
Re[2]: ZwQuerySystemInformation не работает
От: Deviant26 Россия  
Дата: 07.04.05 07:46
Оценка:
Хех — оказывается, я ссылался на функции из DLL не так, как надо (?). Совершенно случайным образом добился того, что всё заработало...
устроит любой вариант, но лучше другой...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.