Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

Сохранить процесс   Найти похожие ветки 

 
ATarget ©   (2005-05-19 17:51) [0]

Возможно ли поставить процесс на паузу и сохранить в фаил (как спящий режим в винде). Если да намекните пожайлуста как.


 
Digitman ©   (2005-05-19 17:57) [1]


> как спящий режим в винде


то что тебе нужно решается гораздо проще и не требует никакого "поставить процесс на паузу и сохранить в фаил"


 
Piter ©   (2005-05-19 17:59) [2]

ATarget ©   (19.05.05 17:51)
Возможно ли поставить процесс на паузу


на паузу можно поставить то, что играется, выполняется. Процесс никем не выполняется.
Потоки можно поставить на паузу, если есть права.

и сохранить в фаил (как спящий режим в винде).

смотря что имеется в виду... Можно сохранить бОльшую часть данных из адресного пространства процесса, но все равно некоторые области тебе будут доступны только из режима ядра.

В общем, понятно что ты хочешь. Но я тебя уверяю - задача ОЧЕНЬ ТРУДОЕМКАЯ и вряд ли тобой выполнимая...


 
Eraser ©   (2005-05-19 20:17) [3]

ATarget ©

Лучше сохраняй результат работы, а не саму работу )


 
ATarget ©   (2005-05-20 10:42) [4]

Ну вобщем ладно, я знал, что мне так ответят, вот только хотел чтоб ответил ктонибуть поумней. Спасибо вобщем.

P.S. Но всё таки это возможно!!! 8) ...


 
ATarget ©   (2005-05-20 11:00) [5]


> Лучше сохраняй результат работы, а не саму работу )

Не ты не понял я хочу сохранять не свой процесс а к примеру Rangers.exe с защитой StarForce.
О, если прогресс процесса сохранить очень тяжело то может быть можно скопировать всю оперативу и используемые участки фаила подкачки а потом какимто макаром их поменить?


 
Digitman ©   (2005-05-20 11:18) [6]


> Но всё таки это возможно


в ХР конечно возможно.
при завершении работы системы просто выбери режим hibernate.


 
Piter ©   (2005-05-20 12:51) [7]

ATarget ©   (20.05.05 10:42) [4]
вот только хотел чтоб ответил ктонибуть поумней


ну мы бы тоже хотели, чтобы вопросы задавали люди поумнее, но что есть - то есть...


 
alpet ©   (2005-05-20 13:55) [8]

Если попростому - сохранение процесса упирается в сложность сохранения множества объектов ядра и их состояний на момент сохранения, а затем восстановление всей картины в целом. Очень неплохо продвинулся к решению этого вопроса автор программы DetectiveStory, в скором времени его программа будет практически безупречно осуществлять сохранение игр в проделах времени работы процесса. Что бы решить всю задачу для получения идеального результата, придется сделать очень много перехватов API процесса, причем необходимо учесть и работу с объектами (интерфейсами) DirectX. Как это не странно, драйвер и вообще работа на уровне ядра не нужна для решения этой задачи...


 
Digitman ©   (2005-05-20 14:01) [9]


> alpet ©   (20.05.05 13:55) [8]


рискуешь получить в ответ "не умничай, код давай")


 
Eraser ©   (2005-05-20 14:07) [10]

alpet ©   (20.05.05 13:55) [8]

Ещё больше продвинулся автор(ы) программы VMWare, где можно тоже потсавить на паузу и сохранить полностью текущее состояние системы.

Но имхо это ОЧЕНЬ не просто. На уровне дескрипторов по-моему невозможно.


 
alpet ©   (2005-05-20 14:16) [11]

У меня кода - нет :). Я даже плохо представляю как работает сохранение процесса, есть только предположение - перехватываются функции работающие с большинством обьектов ядра (файлы, потоки, еtc). При сохранении процесса, они запоминаются с максимально возможной информацией о состоянии каждого обьекта (для ее сбора ясное дело нужно либо ядро все-таки расковырять, либо перехватить половину функций API которые это состояние изменяют). При восстановлении - если процесс был перед этим завершен, программе восстановителю приходится играть роль прослойки для сохраненного процесса, повсюду заменяя ранее сохраненные описатели (хэндлы) созданными заново и подставляя их уже реальным функциям API.


 
Eraser ©   (2005-05-20 14:19) [12]

alpet ©   (20.05.05 14:16) [11]

Перехватывать что-то заведомо нельзя. Hebirnate ведь ничего не перехватывает. имхо надо сохранять участок памяти с таблицами дескрипторов и соответственно таблицами самих объектов ядра.


 
Piter ©   (2005-05-20 15:20) [13]

alpet ©   (20.05.05 14:16) [11]
сохранении процесса, они запоминаются с максимально возможной информацией о состоянии каждого обьекта


как ты можешь узнать информацию об объекте ядра, если

работа на уровне ядра не нужна для решения этой задачи


 
Игорь Шевченко ©   (2005-05-20 15:22) [14]

Эта...hibernate - она все целиком сохраняет, а не по отдельным процессам. Поэтому у нее не стоит задачи что-либо перехватить или выделить, она сохраняет текущее содержимое ОЗУ и текущее состояние аппаратных средств, предварительно усыпив и их. А своп-файл и так готовый на диске.


 
Digitman ©   (2005-05-20 15:36) [15]


> она все целиком сохраняет, а не по отдельным процессам


так точно.
и задача автора - получить нахалявку недок.точки входа в недок.алгоритм этого режима))... причем - в UserMode) ... про Kernelmode автор и слыхом не слыхивал, но даже если так, то при любом намеке далее последует "дайте код !")


 
Игорь Шевченко ©   (2005-05-20 15:55) [16]

Digitman ©   (20.05.05 15:36) [15]


> получить нахалявку недок.точки входа в недок.алгоритм этого
> режима


Это же невозможно. Одна точка входа есть - SetSystemPowerState, но не больше :))


 
Digitman ©   (2005-05-20 16:01) [17]


> Игорь Шевченко ©   (20.05.05 15:55) [16]


Игорь, а как бы это автору втолковать ?)..


 
ATarget ©   (2005-05-20 16:44) [18]


> ну мы бы тоже хотели, чтобы вопросы задавали люди поумнее,
> но что есть - то есть...



> Игорь, а как бы это автору втолковать ?)..


Да ладно. Всё понятно - я просто тормоз и т.д., но ведь все на ошибках учатся.
 

> ... про Kernelmode автор и слыхом не слыхивал, но даже если
> так, то при любом намеке далее последует "дайте код !")


А код я нигде и никогда не выпрашиваю, если есть и не жалко то врятли приходится просить, а если задача сложная и исходника нет то никто, я так думаю, морочиться не будет!!! Да ещё про Kernelmode я и вправду и слыхом не слыхивал. Только не надо теперь с меня издеватся. ;(



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.038 c
5-1090775623
crizis
2004-07-25 21:13
2005.07.18
событие MouseMove


14-1119712856
lookin
2005-06-25 19:20
2005.07.18
Открытая страница и дополнительный трафик...


1-1120153650
Radgar
2005-06-30 21:47
2005.07.18
Разбивание TImage


6-1113309267
ламерок
2005-04-12 16:34
2005.07.18
Программа для работы с поисковыми запросами на делфи


1-1119609462
JTAG
2005-06-24 14:37
2005.07.18
Вычистить остатки компонента из программы как?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский