При перехвате TDI читаю содержимое mdl буфера, правлю его и надо бы на место поправленый кусок вписать. Проблема в том, что неизвестно, сколько писать на место. Т.е. к примеру, было в буфере "0 1 2 3 4 5 6 7 8 9 ...", вырезал допустим единицу, и надо сдвинуть весь текст, начиная от двойки на 1 позицию влево. А где заканчивается этот буфер - не знаю. Сколько сдвигать, или иначе, как определить длину mdl - буфера? Чтобы случайно куда-нибудь не влезть за пределами буфера.
Код (Text): //++ // // ULONG // MmGetMdlByteCount ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlByteCount returns the length in bytes of the buffer // described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the byte count of the buffer described by the Mdl // //-- #define MmGetMdlByteCount(Mdl) ((Mdl)->ByteCount)