И как же быть? С секторами выходит нельзя напрямую работать даже из ring0 ? только через CreateFile("\\\\.\\PhysicalDrive0") ?
Вызывать int13h из драйвера можно, но, смотря из _какого_ драйвера. В win9x драйвер может вызывать nested execution-сервисы и вызывать прерывания DOS/BIOS соотв. функциями. Есть поддержка со стороны системы для вызова int13h из PM ring0 -- int13.vxd/biosxlat.vxd из vmm32.vxd, которые afair предоставляют трансляцию для int13h. Сама w9x c соотв. опциями может использовать (косвенно) биосовский int13h для работы с диском, включая и paging.
Ну можно и в NT/XP левыми путями из RING0. Создать процесс, загрузить в него код с вызовом int_13h, пошаманить над TSS сделав процесс V86 задачей и запустить его. Но оно тебе надо? По моему из RING0 гораздо проще через порты работать с ATA/ATAPI.