Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Приложение создаёт файл в памяти через CreateFileMapping. Другое приложение подключается к этому участку памяти с помощью OpenFileMapping. Получает его HANDLE и работет с ним. Вопрос. Можно ли как-то по этому полученному HANDLE Memory Mapping File узнать PID или HANDLE процесса - создателя файла в памяти ? Просто при работе с файлом в памяти я хочу узнать о завершении процесса, создавшего файл. Не прибит ли он уже через диспетчер задач ? А для этого мне нужен HANDLE процесса создателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:28 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Сделай мапинг на 4 байта больше и запиши в них PID процесса его создавшего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:46 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Dima T, собственно, так и собирался сделать. Но думал может есть какие-то стандартные API функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:48 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Нет таких функций, если не путаю. В виндовсе устроено примерно так: каждый объект имеет счетчик ссылающихся на него хэндлов. Хэндлы хранятся в окружении процесса, при завершении процесса хэндл закрывается, счетчик уменьшается, как доходит до 0 - уничтожается объект. Т.е. виндовс понятия не имеет кто создал, он только отслеживает кто использует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:53 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Обломись. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:54 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Dima Tзапиши в них PID процесса его создавшего. ....а потом бейся головой об стенку, когда Windows отдаст освободившийся PID совершенно другому процессу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 13:58 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov....а потом бейся головой об стенку, когда Windows отдаст освободившийся PID совершенно другому процессу. Чтоб голову поберечь: сразу получи по PID хэндл процесса и проверяй его завершения по хэндлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 14:11 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Dima Tсразу получи по PID хэндл процесса и проверяй его завершения по хэндлу. Пофиг: 1) Главный процесс создал файл 2) Дочерний подключился, получил хэндл, проверил, счастлив, работает 3) Главный процесс умер 4) Левый процесс получил тот же PID 5) Второй дочерний процесс подключился, получил хэндл нового "главного" процесса, счастлив, работает. Для проверки живости главного процесса надо использовать что-то автоматически уничтожаемое при его смерти. Например, мутекс. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 14:24 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПофиг: 1) Главный процесс создал файл 2) Дочерний подключился, получил хэндл, проверил, счастлив, работает 3) Главный процесс умер 4) Левый процесс получил тот же PID 5) Второй дочерний процесс подключился, получил хэндл нового "главного" процесса, счастлив, работает. Думаю так не будет пока есть незакрытые хэндлы на умерший процесс, т.е. для виндовса процесс окончательно не умер пока есть хэндлы на него ссылающиеся. А если все дочерние закроют хэндл маппинга вместе с хэндлом родительского процесса, то новый не подключится. Dimitry SibiryakovДля проверки живости главного процесса надо использовать что-то автоматически уничтожаемое при его смерти. Например, мутекс. Согласен, именованный мутекс проще и удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 14:35 |
|
||
|
Кто хозяин-создатель HANDLE ?
|
|||
|---|---|---|---|
|
#18+
cpp2015 Можно ли как-то по этому полученному HANDLE Memory Mapping File узнать PID или HANDLE процесса - создателя файла в памяти ? GetFileInformationByHandleEx function https://msdn.microsoft.com/en-us/library/windows/desktop/aa364953(v=vs.85).aspx FILE_INFO_BY_HANDLE_CLASS enumeration https://msdn.microsoft.com/en-us/library/windows/desktop/aa364228(v=vs.85).aspx PS: Это конечно не то что ты хотел, но все же. Как вариант: - посмотри утилиты Руссиновича /одно время и исходники их были в inet/. - исходники wine http://sourceforge.net/projects/wine/files/Source/ git clone git://wine.git.sourceforge.net/gitroot/wine/wine (read-only) - исходники ReactOS /кстати многие не понимают, что она дает .../ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2015, 17:11 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38930466&tid=2019038]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 167ms |

| 0 / 0 |
