Длина MDL буфера

Тема в разделе "WASM.NT.KERNEL", создана пользователем cresta, 21 янв 2007.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    При перехвате TDI читаю содержимое mdl буфера, правлю его и надо бы на место поправленый кусок вписать. Проблема в том, что неизвестно, сколько писать на место.
    Т.е. к примеру, было в буфере "0 1 2 3 4 5 6 7 8 9 ...", вырезал допустим единицу, и надо сдвинуть весь текст, начиная от двойки на 1 позицию влево. А где заканчивается этот буфер - не знаю. Сколько сдвигать, или иначе, как определить длину mdl - буфера? Чтобы случайно куда-нибудь не влезть за пределами буфера.
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Код (Text):
    1. //++
    2. //
    3. // ULONG
    4. // MmGetMdlByteCount (
    5. //     IN PMDL Mdl
    6. //     )
    7. //
    8. // Routine Description:
    9. //
    10. //     The MmGetMdlByteCount returns the length in bytes of the buffer
    11. //     described by the Mdl.
    12. //
    13. // Arguments:
    14. //
    15. //     Mdl - Pointer to an MDL.
    16. //
    17. // Return Value:
    18. //
    19. //     Returns the byte count of the buffer described by the Mdl
    20. //
    21. //--
    22.  
    23. #define MmGetMdlByteCount(Mdl)  ((Mdl)->ByteCount)
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    спасибо!