|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 1/2] Add log message if Windows Update requires a reboot
From: Owen Smith <owen.smith@xxxxxxxxxx>
When Windows requires a reboot to install updates, the reboot and shutdown
operations can take a long time. The agent will have acknowledged the
request, but the operation may not complete in a suitable timeout period.
Add a log entry to help indicate an additional unknown amount of time
will be required for shutdown/reboot.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenagent/service.cpp | 22 ++++++++++++++++++++++
src/xenagent/service.h | 1 +
2 files changed, 23 insertions(+)
diff --git a/src/xenagent/service.cpp b/src/xenagent/service.cpp
index 0b44186..e2a6c03 100644
--- a/src/xenagent/service.cpp
+++ b/src/xenagent/service.cpp
@@ -87,6 +87,10 @@ bool CXenIfaceCreator::Start(HANDLE svc)
void CXenIfaceCreator::Stop()
{
+ // Check if registry key is present, implies Windows Update
+ // require a reboot, which may spend time installing updates
+ LogIfRebootPending();
+
m_devlist.Stop();
}
@@ -280,6 +284,24 @@ bool CXenIfaceCreator::CheckSlateMode(std::string *mode)
return true;
}
+void CXenIfaceCreator::LogIfRebootPending()
+{
+ HKEY Key;
+ LONG lResult;
+
+ lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto
Update\\RebootRequired",
+ 0,
+ KEY_READ,
+ &Key);
+ if (lResult != ERROR_SUCCESS)
+ return; // key doesnt exist, dont log anything
+
+ RegCloseKey(Key);
+
+ CXenAgent::Log("RebootRequired detected\n");
+}
+
void CXenIfaceCreator::StartShutdownWatch()
{
if (m_ctxt_shutdown)
diff --git a/src/xenagent/service.h b/src/xenagent/service.h
index 60ecb16..e2e5e5c 100644
--- a/src/xenagent/service.h
+++ b/src/xenagent/service.h
@@ -74,6 +74,7 @@ public:
HANDLE m_evt_slate_mode;
private:
+ void LogIfRebootPending();
void StartShutdownWatch();
void StopShutdownWatch();
void StartSlateModeWatch();
--
2.8.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |