IsBadReadPtr && IsBadWritePtr в ядре

Тема в разделе "WASM.NT.KERNEL", создана пользователем zoool, 13 мар 2008.

  1. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Сабж
    Есть функция. На выходе получаем ноль, если ошибка и если все верно - указатель.
    Вопрос, как проверить указатель на валидность? Т.е. что по этому адресу можно писать/читать, и что обращение к адресу не повалит систему в бсод?
     
  2. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    BOOL MmIsAddressValid(PVOID address);
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Одно и то же каждый день спрашивают, писатели.
     
  4. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    http://blogs.gotdotnet.ru/personal/not-a-kernel-guy/CommentView.aspx?guid=C15944DA-F883-45EC-B282-A5AA165AF09A
     
  5. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    slow_at_work
    имеет значение, если только проверяемый адрес в юзере находится, иначе синяк
     
  6. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    http://www.wasm.ru/print.php?article=mem_management
    http://www.wasm.ru/forum/viewtopic.php?pid=220092#p220092
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    одно и то же каждый день...

    для юзермодных адресов ProbeForRead/ProbeForWrite.
    для кернел адресов при высоком IRQL - MmIsAddressValid
    при низком IRQL нет встроенных функций.. см. мою статью