Доброго времени суток. Разрабатывая драйвер я получил очень неожиданный BSOD и не знаю что делать. Я нашел адрес физической памяти и хочу по нему скопировать данные в свой буффер. Для этого я вызываю MmMapIoSpace(pa, PAGE_SIZE, MmNotCached); Но во время вызова я получаю: DRIVER_VERIFIER_DETECTED_VIOLATION (c4) A device driver attempting to corrupt the system has been caught. This is because the driver was specified in the registry as being suspect (by the administrator) and the kernel has enabled substantial checking of this driver. If the driver attempts to corrupt the system, bugchecks 0xC4, 0xC1 and 0xA will be among the most commonly seen crashes. Arguments: Arg1: 0000000000000083, MmMapIoSpace called to map, but the caller hasn't locked down the MDL pages. Arg2: 0000000043c9a000, Starting physical address to map. Arg3: 0000000000001000, Number of bytes to map. Arg4: 0000000000043c9a, The first page frame number that isn't locked down. Как мне это исправить? Я смотрел в сторону MDL но там же нужен виртуальный адрес, а у меня только физический.
откуда физ.адрес получили? физами крутит только TLB внутри проца. а ошибка кажет на невыгружаемый дров - обычно для теста ставят на выходе "ошибку" и система выгружает его автоматом, а у вас в реестре стоит варнинг