private static IntPtr ExportBackupToRemoteEncryptCallback(string file_path, string encrypt_key, IntPtr user_data) { IntPtr path = IntPtr.Zero; NIMLogsBackupExportInfo export_info = (NIMLogsBackupExportInfo)Marshal.PtrToStructure(user_data, typeof(NIMLogsBackupExportInfo)); if (export_info != null && export_info.ToRemoteEncryptCallback_ != null) { string temp_path = export_info.ToRemoteEncryptCallback_(file_path, encrypt_key); path = Utf8StringMarshaler.GetInstance("").MarshalManagedToNative(temp_path); } return(path); }