BSOD отображения физической памяти

Тема в разделе "WASM.NT.KERNEL", создана пользователем acckiitvar, 15 фев 2019.

  1. acckiitvar

    acckiitvar Member

    Публикаций:
    0
    Регистрация:
    26 сен 2011
    Сообщения:
    71
    Доброго времени суток.
    Разрабатывая драйвер я получил очень неожиданный 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 но там же нужен виртуальный адрес, а у меня только физический.
     
  2. Коцит

    Коцит Active Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    130
    откуда физ.адрес получили? физами крутит только TLB внутри проца.
    а ошибка кажет на невыгружаемый дров - обычно для теста ставят на выходе "ошибку" и система выгружает его автоматом, а у вас в реестре стоит варнинг