я выделения блока памяти в C# для извлечения информации из неуправляемого буфера данных:Получите количество байтов, хранящихся в блоке памяти?
handle = Marshal.AllocHGlobal(33455);
Максимальный размер информации, извлеченной является 33,455 байт, но размер информации может быть меньше, чем в некоторых случаях.
Как определить, сколько байтов действительно используется в выделенном блоке, а не сколько их фактически выделено?
Единственная проблема заключается в том, что система, из которой я получаю данные, не может сказать мне размер данных, которые он написал. Я могу отслеживать, как мои изменения, но как только неуправляемая система записывает некоторые данные, это испортит мои вычисления. Думаю, я просто СОЛ? :( –
В значительной степени ... с негабаритным буфером, самые разумные API возвратят вам количество * используемых * байтов. Сравните с Stream.Read и т. Д. –
Спасибо! Я думаю, что я просто копаю немного глубже в API и посмотреть, есть ли какая-то функция, которую я где-то не вижу. –