> > Registry override of default behavior (disabling when enabled > by default) provided for support and troubleshooting only in case > this feature affects specific user. > > Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx> > --- > qxldod/driver.cpp | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/qxldod/driver.cpp b/qxldod/driver.cpp > index 1946147..01b88d7 100755 > --- a/qxldod/driver.cpp > +++ b/qxldod/driver.cpp > @@ -21,6 +21,38 @@ > > int nDebugLevel = TRACE_LEVEL_ERROR; > > +// registry-based configuration is intended to be manual only > +// for VSync suppression during support and troubleshooting > +// and not expected to be made default > +static void QueryVSyncSetting(BOOLEAN& b, UNICODE_STRING *path) > +{ > + PAGED_CODE(); > + WCHAR buffer[MAX_PATH]; > + ULONG val = b; > + RTL_QUERY_REGISTRY_TABLE QueryTable[3] = {}; > + if (path->Length >= sizeof(buffer)) > + return; > + > + QueryTable[0].Flags = RTL_QUERY_REGISTRY_SUBKEY; > + QueryTable[0].Name = L"Parameters"; > + QueryTable[1].Flags = RTL_QUERY_REGISTRY_DIRECT | > RTL_QUERY_REGISTRY_TYPECHECK | RTL_QUERY_REGISTRY_REQUIRED; > + QueryTable[1].Name = L"EnableVSync"; > + QueryTable[1].DefaultType = REG_DWORD << 24; > + QueryTable[1].EntryContext = &val; > + > + RtlCopyMemory(buffer, path->Buffer, path->Length); > + buffer[path->Length/2] = 0; > + NTSTATUS status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE, buffer, > QueryTable, NULL, NULL); > + if (NT_SUCCESS(status)) > + { > + DbgPrint(TRACE_LEVEL_WARNING, ("%s: val = %d\n", __FUNCTION__, > val)); I would say INFORMATION level, nothing to worry about > + b = !!val; > + } > + else > + { > + DbgPrint(TRACE_LEVEL_WARNING, ("%s: status = %X\n", __FUNCTION__, > status)); Even this, mostly of the time should be that the value is not set which is normal. Unless is supposed to always to present (from the inf file for instance). > + } > +} > > extern "C" > NTSTATUS > @@ -52,6 +84,9 @@ DriverEntry( > // related to enabled VSync control in Win10RS1 > > //g_bSupportVSync = TRUE; Maybe this line now can be removed? > + > + // for support/troubleshooting be able to disable VSync on specific > machine > + QueryVSyncSetting(g_bSupportVSync, pRegistryPath); > } > DbgPrint(TRACE_LEVEL_WARNING, ("VSync support %sabled for %d.%d.%d\n", > g_bSupportVSync ? "en" : "dis", Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel