Хороший вопрос . Ответ - никак.

Цитата:
Каким образом контроллер определяет обьем памяти?

Хороший вопрос wink. Ответ - никак. В прошивку зашито "спросят объем - отдать 8Gb", "пишем больше 256Mb - или прокинуть, или не обрабатывать ошибку, которую вернет флешка", "читаем больше 256Mb - отдать нули".

Соответственно, лечение - расковырять прошивку, поправить, вернуть на место.
Честная прошивка - вполне может и определять, как - флешка отдает свой ID, по которому ясен объем (указан несколькими битами в ID) или, как вариант, в проц зашита таблица соответствия "ID-характеристики флешки" (за деталями - курить даташиты на самсунговские NAND-флешки, к примеру).