Заменить ObjectAttributes из-под zwCreateFile

Тема в разделе "WASM.WIN32", создана пользователем Begemot, 8 мар 2007.

  1. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    А по названию не заметно? :P
    Буквально несколько строк кода.
    Код (Text):
    1. PVOID MapInUserSpace(PVOID pBuf, PMDL *pMdl, ULONG dwSize){
    2.     PVOID pUserModeBuf = NULL;
    3.     PMDL pBufMdl = NULL;
    4.  
    5.     if (!pMdl)
    6.         return NULL;
    7.     pBufMdl = IoAllocateMdl(pBuf, dwSize, FALSE, FALSE, NULL);
    8.     if (!pBufMdl)
    9.         goto exit;
    10.     MmBuildMdlForNonPagedPool(pBufMdl);
    11.     pUserModeBuf = MmMapLockedPagesSpecifyCache(pBufMdl, UserMode, MmCached, NULL, FALSE,
    12.         NormalPagePriority);
    13. exit:
    14.     *pMdl = pBufMdl;
    15.     return pUserModeBuf;
    16. }
    17.  
    18. VOID UnmapInUserSpace(PMDL pMdl, PVOID pPool, PVOID pUserModeBuf){
    19.     if (pUserModeBuf)
    20.         MmUnmapLockedPages(pUserModeBuf, pMdl);
    21.     if (pMdl)
    22.         IoFreeMdl(pMdl);
    23.     if (pPool)
    24.         ExFreePool(pPool);
    25. }
     
  2. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    MmMapLockedPagesSpecifyCache может проецировать страницы на пользовательское адресное пространство? вот это новость..
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Спокойно:
    Код (Text):
    1. AccessMode
    2. Specifies the access mode in which to map the MDL. Either KernelMode or UserMode.
    Подробности в статье Four-F: http://www.wasm.ru/article.php?article=drvw2k09
     
  4. LivelyRoger

    LivelyRoger New Member

    Публикаций:
    0
    Регистрация:
    25 авг 2006
    Сообщения:
    20
    Вот спасибо тебе!
    Все работает, надеюсь автор это увидит.
     
  5. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    Great
    да я уже заметил
    просто раньше думал, что для этого надо создавать секцию, проецировать туда и туда итд...
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Nouzui
    извращенец )
     
  7. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    Great
    а то ))