public unsafe static string CreateMediaLogXml(IntPtr *names, IntPtr *values) { IntPtr name_ptr; IntPtr value_ptr; StringBuilder result = new StringBuilder(); StringBuilder summary = new StringBuilder(); System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings(); settings.OmitXmlDeclaration = true; System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(result, settings); for (int c = 0; names [c] != IntPtr.Zero; c++) { string value = Marshal.PtrToStringAnsi(values [c]).Replace(' ', '_'); if (string.IsNullOrEmpty(value)) { value = "-"; } summary.Append(value); summary.Append(" "); } summary.Length -= 1; writer.WriteStartElement("XML"); writer.WriteElementString("Summary", summary.ToString()); for (int c = 0; names [c] != IntPtr.Zero; c++) { string name = Marshal.PtrToStringAnsi(names [c]); string value = Marshal.PtrToStringAnsi(values [c]).Replace(' ', '_'); if (string.IsNullOrEmpty(value)) { value = "-"; } writer.WriteElementString(name, value); } writer.WriteEndElement(); writer.Flush(); return(result.ToString()); }