2009-04-24 34 views
10

Có thư viện hoặc phần mềm hay bất kỳ cách nào để lưu trạng thái của một tiến trình trong Windows vào một tệp, sau đó khôi phục quy trình đang chạy về trạng thái đang chạy với tất cả bộ nhớ đã được tải sau thời gian?ngủ đông một quy trình duy nhất trong Windows

Tôi biết rằng các chốt mở sẽ phải được mở lại, các chủ đề có thể phải bắt đầu, vv, nhưng có thể đống và ngăn xếp một luồng ít nhất được khôi phục không?

Tôi đã xem this question, nhưng câu trả lời là tất cả cho Linux và hầu hết trong số họ nói rằng nó không thể được thực hiện.

Tôi biết tôi có thể làm cho tất cả các cấu trúc dữ liệu của mình có thể tuần tự hóa và tự mình làm, nhưng tôi muốn biết nếu có thể không có điều đó.

Trả lời

6

Raymond Chen (ai thậm chí có thể đá vào cú đánh của Jon Skeet khi nói đến kiến ​​thức tối nghĩa của Windows) nói it isn't possible.

Về cơ bản, trừ khi quy trình của bạn sử dụng hoàn toàn không có tài nguyên hệ thống (ví dụ: xử lý dưới mọi hình thức), sẽ luôn có trạng thái OS mà bạn không thể lưu và khôi phục.

Cách thiết thực nhất của việc giải quyết vấn đề này là để tạo ra một máy ảo chạy một thể hiện của Windows và chạy quá trình của bạn bên trong đó:

  • Bạn có thể làm cho hệ điều hành khách như nhẹ càng tốt bằng cách sử dụng nLite.
  • Sau đó, bạn có thể sử dụng VMWare VIX API để tạm ngưng/tiếp tục VM theo lập trình.
  • Điều này tất nhiên treo hệ điều hành khách và quá trình của bạn với nó, giải quyết vấn đề trạng thái hệ điều hành.
+1

Cảm ơn bạn đã liên kết. Rất thú vị. Tôi sẽ xem xét cách tiếp cận VM. Tôi vẫn không may mắn nếu một bản vá os của khách yêu cầu khởi động lại. –

+1

Nếu đó là bảo mật của hệ điều hành khách mà bạn đang nghĩ đến, tôi sẽ bị cám dỗ chỉ cho phép mạng chỉ dành cho máy chủ lưu trữ hoặc NAT-ed, vì vậy khách không phải là địa chỉ từ Interwebs. Và sau đó có nguy cơ không vá ... – snowcrash09

1

>> • Bạn có thể làm cho hệ điều hành khách càng nhẹ càng tốt bằng cách sử dụng nLite.

Để thêm vào tuyên bố ở trên - Phiên bản nhẹ chính thức của Windows XP là "XP Embedded" hoặc "Windows Embedded Standard". Nó là một phiên bản XP được cấu thành rất nhiều cho phép bạn giảm kích thước hình ảnh XP xuống còn 40 MB.

Phiên bản "trọng lượng nhẹ" của Windows 7 là Windows Embedded Standard 2011, mà hiện nay là bản Beta và có sẵn để tải về (connect.microsoft.com/windowsembedded)

Tất nhiên, nó không phải là một phần mềm miễn phí không giống như NLite.

Cảm ơn,

Srikanth

Các vấn đề liên quan