Цитата(DRUID3 @ Aug 31 2007, 20:35)

Иногда сталкиваюсь, не в качестве разработчика, а просто как юзверь с забавными девайсами зовущимися DVR (Digital Video Recorder). Забавность сего чуда враждебной техники в том, что пишет он свою инфу на стандартный IDE винт. А вот интересно мне, а что за файловая система стоит на тех винтах? Да и "ось" интересна тоже. Просто может кто имел более "близкий" опыт, мож даже и разрабатывал диво сие??? Понимаю, что вариантов может быть масса, но как показывает практика человеческое мышление инерционно.

У разных производителей может быть разный подход к файловой системе ДВР
Например я сталкивался с ДВР, где файловой сисетемы не было впринципе. Запись МПЕГ2 потока производилась посекторно: метка - поток, метка - поток и т.д. На компе такой финт выглядел как подключенный, но неформатированный.
Считать поток с такого винта на компе удалось только след образом (под NT2к):
1) Открываем драйвера устройства:
HANDLE hdd = CreateFile("\\\\.\\PhysicalDrive0"...);
2) Получаем его геометрию
DeviceIoControl( hdd, IOCTL_DISK_GET_DRIVE_GEOMETRY...);
3) Чтение(метка - поток, метка - поток) обычными ReadFile:
ReadFile( hdd, pbuffer, size, (DWORD *)&dwret, 0);
4) ищем "наш" ДВР винт по метке: перебираем PhysicalDrive1 и т.д.
5) Если нужно установиться в какунить позицию на винте то
SetFilePointer(...)
Собственно если это очень увлекает, то можно сделать дамп своего ДВР винта, а потом програмно поковырять дамп. Например что-то на вроде:
HANDLE hdd = CreateFile("\\\\.\\PhysicalDrive3" ...);
DeviceIoControl( hdd, ...
ReadFile( hdd, ... );
FILE * pf = fopen("hdd3.bin","wb");
fwrite((LPVOID)data,1,size,pf);