From: Owen Smith Date: Tue, 17 Nov 2015 17:05:23 +0000 (+0000) Subject: Dont force a WMI event when reregistering a watch X-Git-Tag: 8.2.0-rc1~39 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3856304c3153b365014e2c554e50d19ad7de39a8;p=pvdrivers%2Fwin%2Fxeniface.git Dont force a WMI event when reregistering a watch When a watch is registered, the watch gets triggered. This will result in a WMI event being fired. There is no need to manually fire a WMI event in this case, as it can lead to the WMI event being discarded. Signed-off-by: Owen Smith --- diff --git a/src/xeniface/wmi.c b/src/xeniface/wmi.c index c73e990..b3e4c55 100644 --- a/src/xeniface/wmi.c +++ b/src/xeniface/wmi.c @@ -875,19 +875,15 @@ VOID WatchCallbackThread(__in PVOID StartContext) { ExFreePool(watch); session->mapchanged = TRUE; session->watchcount --; - } - else - { - if (!session->suspended) { - if (watch->suspendcount !=XENBUS_SUSPEND(GetCount, &watch->fdoData->SuspendInterface)) { - watch->suspendcount = XENBUS_SUSPEND(GetCount, &watch->fdoData->SuspendInterface); - XenIfaceDebugPrint(WARNING,"SessionSuspendResumeUnwatch %p\n", watch->watchhandle); - - XENBUS_STORE(WatchRemove, &watch->fdoData->StoreInterface, watch->watchhandle); - watch->watchhandle = NULL; - StartWatch(watch->fdoData, watch); - } - } + } else if (!session->suspended && + watch->suspendcount != XENBUS_SUSPEND(GetCount, &watch->fdoData->SuspendInterface)) { + watch->suspendcount = XENBUS_SUSPEND(GetCount, &watch->fdoData->SuspendInterface); + XenIfaceDebugPrint(WARNING,"SessionSuspendResumeUnwatch %p\n", watch->watchhandle); + + XENBUS_STORE(WatchRemove, &watch->fdoData->StoreInterface, watch->watchhandle); + watch->watchhandle = NULL; + StartWatch(watch->fdoData, watch); + } else { FireWatch(watch); } ExReleaseFastMutex(&session->WatchMapLock);