Как использовать RtlDecompressBuffer, не зная размера несжатых данных? - PullRequest
2 голосов
/ 19 мая 2011

Я хотел бы использовать WINAPI RtlDecompressBuffer в пользовательском режиме для распаковки буфера, ранее сжатого с помощью RtlCompressBuffer.У меня есть код для сжатия, но кажется, что для распаковки мне нужно знать размер несжатых данных, поскольку функция нуждается в этом в качестве параметра.

Как я могу это сделать, не зная размера несжатых данных?Возможно, мне следует использовать RtlDecompressFragment.

Пример кода был бы великолепен!

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2013

Почему бы не добавить (при сжатии) простой заголовок (первые 4 байта) в буфер с несжатым размером?

2 голосов
/ 19 мая 2011

Вам не нужно знать размер несжатых данных. Все, что вам нужно сделать, это зарезервировать достаточно памяти для хранения всех несжатых данных и передачи их в API. Если ваш буфер недостаточно велик, API вернет STATUS_BAD_COMPRESSION_BUFFER, и вам придется выделить больший буфер для несжатых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...