Всегда ли OpenProcess записывает блокировку файла? - PullRequest
0 голосов
/ 07 апреля 2010

Я хочу вызвать функцию Windows API OpenProcess для другого процесса, выполняющегося на компьютере. Будет ли это всегда приводить к блокировке записи файла, процесс которого я открываю? Или это зависит от прав доступа Я запрашиваю?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

Да, это фундаментальное свойство Windows. Когда исполняемый файл загружается (EXE или DLL), Windows создает отображение файла в памяти. Куски кода или данных из исполняемого файла попадают с ошибкой страницы в ОЗУ, что необходимо для поддержания работы программы. Это работает и наоборот: когда Windows необходимо выделить ОЗУ для другой программы, она отбрасывает куски отображенных страниц, которые не использовались некоторое время. Эти страницы не занимают места в файле подкачки, если они представляют собой код, их можно перезагрузить из исполняемого файла.

Очень эффективный код, который был написан, когда 16 мегабайт оперативной памяти были роскошью. Раздел отображения памяти сохраняет блокировку записи в файле. Все еще полезный в наши дни, он предотвращает какое-либо вредоносное ПО с использованием кода запущенного процесса.

0 голосов
/ 07 апреля 2010

Файл процесса заблокирован во время работы процесса;это не имеет ничего общего с OpenProcess.Файл разблокируется после завершения процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...