[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XENBUS PATCH 2/2] Be more tolerant of RealTimeIsUniversal values





On Wed, Aug 13, 2025 at 2:32 PM Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx> wrote:

-    status = RegistryQueryDwordValue(Key, "RealTimeIsUniversal",
-                                     &RealTimeIsUniversal);
-    if (!NT_SUCCESS(status)) {
-        if (status != STATUS_OBJECT_NAME_NOT_FOUND)
-            goto fail2;
+    status = RegistryQueryDwordValue(Key, "RealTimeIsUniversal", &ValueDword);
+    if (status == STATUS_OBJECT_NAME_NOT_FOUND) {
+        Context->RealTimeIsUniversal = FALSE;
+        goto done;
+    } else if (NT_SUCCESS(status)) {
+        Context->RealTimeIsUniversal = !!ValueDword;
+        goto done;
+    }

-        RealTimeIsUniversal = 0;
+    status = RegistryQueryQwordValue(Key, "RealTimeIsUniversal", &ValueQword);
+    if (NT_SUCCESS(status)) {
+        Context->RealTimeIsUniversal = !!ValueQword;
+        goto done;
     }

-    Context->RealTimeIsUniversal = RealTimeIsUniversal ? TRUE : FALSE;
+    status = STATUS_UNSUCCESSFUL;
+    Context->RealTimeIsUniversal = FALSE;

+done:
     Info("%s\n", Context->RealTimeIsUniversal ? "TRUE" : "FALSE");

The logic here seems more complicated than required. Would something like

    status = RegistryQueryDwordValue(Key, "RealTimeIsUniversal", &ValueDword);
    if (NT_SUCCESS(status)) {
        Context->RealTimeIsUniversal = !!ValueDword;
        goto done;
    }

    status = RegistryQueryQwordValue(Key, "RealTimeIsUniversal", &ValueQword);
    if (NT_SUCCESS(status)) {
        Context->RealTimeIsUniversal = !!ValueQword;
        goto done;
    }

    Context->RealTimeIsUniversal = FALSE;

done:
    Info("%s\n", Context->RealTimeIsUniversal ? "TRUE" : "FALSE");

be cleaner?

Owen


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.