protected bool FreeClusterChain(uint firstCluster)
{
if (firstCluster == 0)
return true;
uint at = firstCluster;
while (true)
{
uint next = GetClusterEntryValue(firstCluster);
SetClusterEntryValue(at, 0);
if (IsClusterLast(next))
return true;
if (IsClusterFree(next) || IsClusterBad(next) || IsClusterReserved(next))
return false;
at = next;
}
}