Mika, спасибо! Действительно, ebx нелшьзя трогать! Кстати, похожая проблема, если в DriverEntry изменить edi без восстановления. И что интересно, там лежит указатель на объект драйвера... А есть ли еще подобные нюансы?
Передача через регистры - это так называемый fast call: первый аргумент в ecx, второй в edx, остальные в стеке. Функция завершения IRP запроса называется IofCompleteRequest ( f после Io - это фасткол)