Фиктивный трек в Post-gap подлинного трека
Засунуть Разместить фиктивный трек в серединеу настоящего (как это и показано на рис.6.80x074) —– неинтересно. Лучше разместить фиктивный трек целиком в области Post-gap области подлинного трека. Тогда, при попытке вычисления длины фиктивного трека, все копировщики сойдут с ума. Вспомним, что длина всякого нормального трека по стандарту равна: min(&Lead-?Out, &NexTrack – 150) – &MyTrack – 150. Если расположить начало трека так, чтобы min(&Lead-?Out, &NexTrack – 150) < (&MyTrack – 150), то – его расчетная длина окажется отрицательной и многие из копировщиков просто не поймут что с таким треком вообще следует делать. К тому же, большинство копировщиков хранят длину треков в переменных типа unsigned long, а потому небольшое по модулю отрицательное число, ошибочно интерпретируемое процессором как беззнаковое, превращается в очччень и очень большое положительное, и для записи "содержимого" фиктивного трека потребуется около четырех4 Ггигабайт свободного места на диске и еще столько же —– на "прожигаемой" болванке.
Обратимся к point'ууказателю A2h, хранящему адрес выводной области, и скопируем принадлежащие ему PMin, PSec и PFrame в соответствующие поля фиктивного сектора, уменьшив PFrame последнего на некоторое значение (о том, как создаются фиктивные сектора, мы уже говорили, см. двае предыдущих раздела этой главыглавы).