Ломанное ядро XP работает с 4 ГБ только в безопасном режиме. Говорят, что проблема в HAL.DLL и касается поддержки DMA и Bus Mastering. Облазил все функции DMA, нихуя подозрительного там не нашёл.
Кстати, падает ломанное ядро с ошибкой PAGE_FAULT_IN_NONPAGED_AREA, которая возникает внутри функции MmMapLockedPagesWithReservedMapping(...)
Функция MmMapLockedPagesWithReservedMapping как раз используется как в scsiport.sys, так и в hal.dll в DMA-функции MapTransfer.
Сейчас вот придётся разбираться, как заполняется MDL при входе в обработчики драйвера.