/* The returned result is provided in malloced storage and thus must be free'd by the caller. */
STATIC XENSTORE_STATUS XenStoreSingle(IN CONST XENSTORE_TRANSACTION *Transaction, IN enum xsd_sockmsg_type RequestType, IN CONST CHAR8 *Body, OUT UINT32 *LenPtr OPTIONAL, OUT VOID **Result OPTIONAL)
/* The returned result is provided in malloced storage and thus must be free'd by the caller. */
STATIC XENSTORE_STATUS XenStoreSingle(IN CONST XENSTORE_TRANSACTION *Transaction, IN enum xsd_sockmsg_type RequestType, IN CONST CHAR8 *Body, OUT UINT32 *LenPtr OPTIONAL, OUT VOID **Result OPTIONAL)
{
  WRITE_REQUEST  WriteRequest;
  WriteRequest.Data = (VOID *)Body;
  WriteRequest.Len  = (UINT32)AsciiStrSize (Body);
  return XenStoreTalkv (
           Transaction,
           RequestType,
           &WriteRequest,
           1,
           LenPtr,
           Result
           );
}