/* If the number overflows according to the range defined by UINT64, then ASSERT(). */
STATIC XENSTORE_STATUS XenBusReadUint64(IN XENBUS_PROTOCOL *This, IN CONST CHAR8 *Node, IN BOOLEAN FromBackend, OUT UINT64 *ValuePtr)
/* If the number overflows according to the range defined by UINT64, then ASSERT(). */
STATIC XENSTORE_STATUS XenBusReadUint64(IN XENBUS_PROTOCOL *This, IN CONST CHAR8 *Node, IN BOOLEAN FromBackend, OUT UINT64 *ValuePtr)
{
  XENSTORE_STATUS  Status;
  CHAR8            *Ptr;
  if (!FromBackend) {
    Status = This->XsRead (This, XST_NIL, Node, (VOID **)&Ptr);
  } else {
    Status = This->XsBackendRead (This, XST_NIL, Node, (VOID **)&Ptr);
  }
  if (Status != XENSTORE_STATUS_SUCCESS) {
    return Status;
  }
  *ValuePtr = AsciiStrDecimalToUint64 (Ptr);
  FreePool (Ptr);
  return Status;
}