Не так нехорошо делать- user mode ф-цию из драйвера. Объясняю почему.
1) Ты вызовешь ф-цию в режиме ядра, где использование user mode ф-ция Win32 API проблематично хотя бы из-за ограничений на размер стека, и вобще они не предназначены для работы в режиме ядра, поэтому могут уронить систему- скорее всего так и сделают, но могут и отработать нормально- это надо проверять каждую ф-цию, хотя ты можешь вызывать сразу ф-ции ядра, но это надо хитро получить указатели на них.
2) Вызывать callback ф-цию можно только в контексте того процесса, в котором получили ее адрес, иначе PF с синим экраном.
Теоретически вызов callback ф-ции, находящейся в юзерском приложении возможен, но при вышеупомянутых ограничениях.
По твоей проблеме есть статья
"In Context: Understanding Execution Context for NT Drivers"
вот тут она лежит
http://www.osronline.com/article.cfm?id=168