Index: /trunk/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp	(revision 55192)
+++ /trunk/src/VBox/Additions/common/VBoxVideo/HGSMIBase.cpp	(revision 55193)
@@ -466,4 +466,24 @@
 
 
+/** Sanity test on first call.  We do not worry about concurrency issues. */
+static int testQueryConf(PHGSMIGUESTCOMMANDCONTEXT pCtx)
+{
+    static bool cOnce = false;
+    uint32_t ulValue = 0;
+    int rc;
+
+    if (cOnce)
+        return VINF_SUCCESS;
+    cOnce = true;
+    rc = VBoxQueryConfHGSMI(pCtx, UINT32_MAX, &ulValue);
+    if (RT_SUCCESS(rc) && ulValue == UINT32_MAX)
+        return VINF_SUCCESS;
+    cOnce = false;
+    if (RT_FAILURE(rc))
+        return rc;
+    return VERR_INTERNAL_ERROR;
+}
+
+
 /**
  * Query the host for an HGSMI configuration parameter via an HGSMI command.
@@ -481,4 +501,7 @@
     LogFunc(("u32Index = %d\n", u32Index));
 
+    rc = testQueryConf(pCtx);
+    if (RT_FAILURE(rc))
+        return rc;
     /* Allocate the IO buffer. */
     p = (VBVACONF32 *)VBoxHGSMIBufferAlloc(pCtx,
@@ -489,5 +512,5 @@
         /* Prepare data to be sent to the host. */
         p->u32Index = u32Index;
-        p->u32Value = 0;
+        p->u32Value = UINT32_MAX;
         rc = VBoxHGSMIBufferSubmit(pCtx, p);
         if (RT_SUCCESS(rc))
