68 / 56 / 14
Регистрация: 20.12.2013
Сообщений: 564
1

Адресное пространство процесса

11.02.2018, 05:01. Показов 992. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил почитать про winapi, в результате пока полная путаница. Вот если создал функцию в своей программе, то ее адрес не могу передать в другой процесс, поскольку в нем другое адресное пространство, и она будет ссылаться на хз что.
А вот здесь
C++
1
HWND hWnd = FindWindow("MozillaWindowClass", 0);
получаем hWnd - как я понимаю, это по сути тоже адрес (void* же ж). Но как я понимаю по виду приведенного вызова, вызывается эта функция из другого процесса - т.е. HWND - это какой-то абсолютный адрес?
Бред, наверно, пишу, но вдруг кто поймет и даст подсказку что бы почитать такого, что бы дало ясную общую картину, а то зарываюсь в частностях.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2018, 05:01
Ответы с готовыми решениями:

Адресное пространство процесса
Доброго времени суток. Есть процесс. Внутри него создается новый. Он существует в этом же адресном...

Адресное пространство Windows
Если вдруг не там спросил, заранее прошу прощения. Я просто не нашёл куда ещё этот вопрос можно...

Проецирование на адресное пространство
Доброго времени суток. Нужна помощь в решении примера: Cоздать консольное приложение. Приложение...

Виртуальное адресное пространство
Удаление страницы и выгрузка страницы из памяти - это разные вещи?

4
138 / 138 / 53
Регистрация: 14.06.2016
Сообщений: 467
11.02.2018, 08:50 2
Цитата Сообщение от AndrSlav Посмотреть сообщение
это по сути тоже адрес
Нет, это никакой не адрес, а дескриптор (описатель/хэндл).
Дескриптор представляет собой, некоторый идентификатор (очень упрощенно говоря, это просто число), который указывает на конкретный объект ядра (процесс, поток, окно и т.д.).
Оперируя объектами ядра, вы оперируете ими используя дескриптор (сделано это в первую очередь в целях безопасности, для разграничения доступа, например), а не реальными объектами.
В большинстве случаев, дескрипторы валидны только в том процессе, для которого они были выданы (процесс/поток/файл и т.д.). Но есть и случаи (как ваш с HWND), когда дескрипторы валидны для всех процессов.
1
68 / 56 / 14
Регистрация: 20.12.2013
Сообщений: 564
11.02.2018, 12:31  [ТС] 3
jr_, а как определить какие дескрипторы имеют смысл вне процесса? Т.е. какие здесь глубинные идеи заложены, ну или где найти список таких дескрипторов, на худой конец? А то что-то в книге сначала "адресное пространство процесса, блаблабла", а потом раз - получаем дескриптор на окно другого процесса - как-то сбивает, когда не доходит идея.
0
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.02.2018, 23:05 4
Цитата Сообщение от AndrSlav Посмотреть сообщение
ну или где найти список таких дескрипторов, на худой конец?
NtQuerySystemInformation с флагом SystemHandleInformation.
1
138 / 138 / 53
Регистрация: 14.06.2016
Сообщений: 467
13.02.2018, 13:35 5
Цитата Сообщение от AndrSlav Посмотреть сообщение
как определить какие дескрипторы имеют смысл вне процесса
А зачем это знать ? Как правило в документации к функции возвращающие дескриптор написано, что его необходимо закрыть и чем закрыть.
Глобальные дескрипторы нельзя закрыть -) (CloseHandle/RegCloseKey etc).
А вообще, HWND - единственный на моей памяти.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2018, 13:35
Помогаю со студенческими работами здесь

адресное пространство, Access violation и т.п.
Прочитал на хабре статью про управление памятью в windows цитата: "для каждой запущенной...

Разница между копированием exe файла в адресное пространство и созданием образа
Не понимаю. "Вместо выделения какого-то пространства из страничного файла система использует...

Адресное пространство процесса
здравствуйте! подскажите как узнать (какие апифункции использовать) адресное пространство...

Как передать строку в адресное пространство другого процесса?
Мне необходимо передать строку другому процессу, из ДЛЛ (Hook)... т.к. длл линкуется к каждому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru