Wegen A4AF noch kurz:
Sowas z.B.
// X-Ray :: KeepA4AFInfos :: Start
/*
delete[] m_abyPartStatus;
*/
uint8* thisAbyPartStatus;
if(m_PartStatus_list.Lookup(reqfile, thisAbyPartStatus))
{
delete[] thisAbyPartStatus;
m_PartStatus_list.RemoveKey(reqfile);
}
// X-Ray :: KeepA4AFInfos :: End
macht das ganze kaputt... korrekt wäre, in dem Fall die Flags zu aktualisieren, sonst gehen die alten Daten (ICS, HideOS, etc. - was du da eben drin hast) verloren.
Dasselbige hier:
// X-Ray :: KeepA4AFInfos :: Start
/*
m_abyPartStatus = new uint8[m_nPartCount];
memset(m_abyPartStatus, 1, m_nPartCount);
*/
if (m_abyPartStatus == NULL)
{
m_abyPartStatus = new uint8[m_nPartCount];
m_PartStatus_list.SetAt(reqfile, m_abyPartStatus);
}
memset(m_abyPartStatus, SC_AVAILABLE, m_nPartCount);
// X-Ray :: KeepA4AFInfos :: End
Durch das memset wird alles überschrieben.
Es gab noch mehr, aber ich hab den Kram nicht mehr im Kopf... irgendwas war auch mit dem gespeicherten Srccount.