internal static byte[] GetRecoveryInformation(string startupInfo, byte[] resourceManagerRecoveryInformation)
{
TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log;
if (etwLog.IsEnabled())
{
etwLog.MethodEnter(TraceSourceType.TraceSourceBase, "TransactionManager.GetRecoveryInformation");
}
MemoryStream stream = new MemoryStream();
byte[] returnValue = null;
try
{
// Manually write the recovery information
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(TransactionManager.CurrentRecoveryVersion);
if (startupInfo != null)
{
writer.Write(startupInfo);
}
else
{
writer.Write("");
}
writer.Write(resourceManagerRecoveryInformation);
writer.Flush();
returnValue = stream.ToArray();
}
finally
{
stream.Dispose();
}
if (etwLog.IsEnabled())
{
etwLog.MethodExit(TraceSourceType.TraceSourceBase, "TransactionManager.GetRecoveryInformation");
}
return returnValue;
}