Почти дописал legacy драйвер, но осталось пару вопросов. WDK используется последний, 6001 beta3 + vs2005.
1. В каталоге objchk_w2k_x86\i386\ компилятор создал файл листинга (кстати, как это слово на русский перевести?) driver.asm. Вроде все нормально, но при следующим запуске build получаю ошибку. Оказывается кто-то вызвал ml.exe для компиляции этого листинга!
Это что за самодеятельность? Разумеется файлов sources и dirs в этом каталоге нет, а в макросе SOURCES есть только driver.cpp.
2. Почему не используется опция компилятора /Oy даже в релизе? Какой от нее вред?
3. Почему при создании драйвера не используется опция линкера /merge:.rdata=.text? Я проверил, все атрибуты секций совпадают, включая nonpageable.
4. Вопрос из области теории.
Если код драйвера выполняется в IRQL=PASSIVE_LEVEL, то он может быть прерван виндою и переключен на другой поток даже на одноядерной тачке и этот поток может заново вызвать мой драйвер?