Цитата(skyv @ Oct 5 2010, 13:26)

Мне здается, что имя файла не указывает то на каком носителе он находится.
Ну я вообще-то не угадать пытался, а конкретно Вам наводку дал где копать

Почитайте в документации на FatFS описание параметра FileName.
Параграф так и называется "Format of the path names" и в первой же строке сразу указывается где там номер драйва ставить.
Кстати схема не такая уж редкая, в Win API имя драйва тоже в строке имени файла задается.
Цитата(skyv @ Oct 5 2010, 13:22)

Вопрос снимаю. Посмотрел ff.h и стало понятно, что
если FIL *fp, то fp->fs->drv это и есть носитель.
Верно, но это внутреннее дело библиотеки.
Если Вы ее правильно портировали, то задав FileName в ф-ции f_open в соответствии с документацией, библиотека сама поставит верно номер драйва в fp->fs->drv.
Пользователь не должен про это вообще ничего знать. Для него есть API, через него и надо работать.