Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

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

 
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 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.055 c
3-1118205610
Ярослав
2005-06-08 08:40
2005.07.18
Диалог создания строки соеденения в ADOConnection


14-1119350268
Xmen
2005-06-21 14:37
2005.07.18
Лицензионная программа


3-1118163412
Julia
2005-06-07 20:56
2005.07.18
Печать отчетов


1-1120294862
Гаврилов В.А.
2005-07-02 13:01
2005.07.18
Как возвести в 0,25 степень


3-1117813075
Som
2005-06-03 19:37
2005.07.18
отчёт в MS Word (Запись в ячейки таблицы )