Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Чтение в буфер из IRP_MJ_DEVICE_CONTROL и IRP_MJ_READ  (Прочитано 6502 раз)
0 Пользователей и 1 Гость смотрят эту тему.
V-ctor
Гость
« : 16-12-2003 14:43 » 

Как-то странно в первом случае все нормально чтется, а во втором выдает ошибку
я пользовался в нумеге так:

KMemory Mem(I.Mdl());
PUCHAR   pBuffer   = (PUCHAR) Mem.MapToSystemSpace();

где MapToSystemSpace() это

    CSHORT  canFail;   // original fail flag in MDL

    if(!(pMdl->MdlFlags &
            (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL))) {

        // get the current fail flag
        canFail = (CSHORT)(pMdl->MdlFlags & MDL_MAPPING_CAN_FAIL);

        // set 'mapping can fail' so we don't bugcheck
        // if MmMapLockedPages fails
        pMdl->MdlFlags |= MDL_MAPPING_CAN_FAIL;

        // try to map the buffer
        pMdl->MappedSystemVa =
            (PVOID)(((ULONG_PTR)MmMapLockedPages(pMdl, KernelMode)) |
                                MmGetMdlByteOffset(pMdl));

        // set the original flag back in the MDL
        if(!canFail) {
            pMdl->MdlFlags &= ~MDL_MAPPING_CAN_FAIL;
        }
    }

    return pMdl->MappedSystemVa;


и вот на canFail всё вылетает, а тут еще поглядел пример у них для ReadFile, дак там они используют VirtualAddress. Еще больше запутался. Нам же в дривере нужен физический, а не виртуальный адрес или нет?
Записан
V-ctor
Гость
« Ответ #1 : 17-12-2003 14:48 » new

Вопрос снят, сам виноват был.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines