![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
InterProcessCommunication [D7, Win2k, WinXP]
sdkit © (2007-02-06 14:50:00)доброго времени суток всем.
не подскажите, можно ли получить список объектов (а именно memory-mapped-file'ов) в системе, выполняясь на уровне пользователя или службы...
sdkit (2007-02-09 07:01:00) [1]вот я потому и спрашиваю, что нет у меня уверенности в том, что система прибъет эти объекты...
P.S. экспериментальным путем установлено, что неопознанные объекты ядра удаляются.. соответственно, надобность в DuplicateHandle etc. отпадает
Всем спасибо
GrayFace (2007-02-09 01:20:00) [2]sdkit (08.02.07 6:56) [13]
последствия вмешательства, я думаю, неважны - если уж я прибиваю объект, принадлежащий зависшему процессу, которого ждет Terminate...
Дак зачем тогда прибивать?
BiN (2007-02-08 10:13:00) [3]
> sdkit (08.02.07 06:56) [13]
>
> блин, ну я же говорю - "не прыгают они"!
код в студию или транспортир.
sdkit (2007-02-08 06:56:00) [4]блин, ну я же говорю - "не прыгают они"!
последствия вмешательства, я думаю, неважны - если уж я прибиваю объект, принадлежащий зависшему процессу, которого ждет Terminate...
BiN (2007-02-07 15:11:00) [5]
> sdkit (07.02.07 14:41) [9]
>
> DuplicateHandle не работает
Работает.
Другой вопрос, какие могут быть негативные последствия такого варварского способа вмешательства в работу стороннего процесса.
Kolan (2007-02-07 15:00:00) [6]> или другой вопрос - при TerminateProcess удаляются подобные
> объекты или нет?
Я конечно не спец, но имхо они удалятся когда никому нужны не будут. Те если их 2 процесса используют, а ты прибьёшь 1, то объект останется.
Riply (2007-02-07 14:53:00) [7]>[9] sdkit (07.02.07 14:41)
>DuplicateHandle не работает... есть сильное подозрение, что я не могу прибить не-свой-объект
У меня срабатывал
sdkit (2007-02-07 14:41:00) [8]DuplicateHandle не работает... есть сильное подозрение, что я не могу прибить не-свой-объект
> Чапаев
а с извращениями?
или другой вопрос - при TerminateProcess удаляются подобные объекты или нет?
BiN (2007-02-07 14:05:00) [9]
> sdkit (07.02.07 13:14) [6]
DuplicateHandle(...., DUPLICATE_CLOSE_SOURCE) (?)
Чапаев (2007-02-07 13:24:00) [10]> [6] sdkit (07.02.07 13:14)
Без извращений -- нет, насколько я знаю.
sdkit (2007-02-07 13:14:00) [11]спасибо всем, пошел по простейшему пути - exename+pid, правда, для этого пришлось вытребовать исходник того, что их делает...
а теперь еще один интересный вопрос - могу ли я, крутясь на уровне службы, прибить этот объект?
Игорь Шевченко (2007-02-07 10:41:00) [12]
> Необходимо получить список mmf, если известно имя exe-шника
> процесса, но неизвестно количество копий процесса (я думаю,
> не стоит уточнять, что имена mmf уникальны)..
Связка NtQuerySystemInformation (SystemHandleInformation)+ NtQueryObject может быть и справится
Чапаев (2007-02-07 09:19:00) [13]> имена mmf уникальны
Дописывай к имени идентификатор процесса.
Alex Konshin (2007-02-07 09:18:00) [14]Если они именованные, то очень просто.
Скачай WinObj http://www.microsoft.com/technet/sysinternals/SystemInformation/WinObj.mspx
Если ты там увидишь те объекты, что тебе нужны, то достать их из твоей программы будет достаточно просто. У меня на сайте есть пример NativeApp, да и у Игоря было что-то по этому поводу.
sdkit (2007-02-07 06:49:00) [15]Извините, но было бы не нужно - не спрашивал бы..
Задача - есть n-ое количество процессов, которые создают по одному mmf на процесс, имена mmf неизвестны. Необходимо получить список mmf, если известно имя exe-шника процесса, но неизвестно количество копий процесса (я думаю, не стоит уточнять, что имена mmf уникальны)..
Игорь Шевченко (2007-02-06 14:51:00) [16]Можно, но очень сложно. Возникает вопрос - а нафига ?