|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XENBUS PATCH 2/2] Be more tolerant of RealTimeIsUniversal values
On 13/08/2025 18:17, Owen Smith wrote:
>
> status = SystemGetTimeInformation();
> if (!NT_SUCCESS(status))
> Error("Cannot read RealTimeIsUniversal, clock may be incorrect!
> \n");
>
> doesnt log the error code, and still returns STATUS_SUCCESS from this
> function (SystemInitialize).
>
> Owen
That's intentional to not fail the bootup when RealTimeIsUniversal is
misconfigured. I'll add the status code to the log entry.
>
> On Wed, Aug 13, 2025 at 5:12 PM Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx> wrote:
>
> On 13/08/2025 18:09, Owen Smith wrote:
> >
> >
> > 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
> >
>
> I didn't want SystemGetTimeInformation to error out when the
> RealTimeIsUniversal value is absent since its status code is used later
> on for error reporting. But I can also ignore the status code of
> SystemGetTimeInformation instead. What do you prefer?
>
>
> Ngoc Tu Dinh | Vates XCP-ng Developer
>
> XCP-ng & Xen Orchestra - Vates solutions
>
> web: https://vates.tech <https://vates.tech>
>
>
Ngoc Tu Dinh | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |