如何在不知道未压缩数据大小的情况下使用RtlDecompressBuffer?

时间:2011-05-19 16:01:42

标签: c winapi

我想在用户模式下使用WINAPI RtlDecompressBuffer来解压缩先前使用RtlCompressBuffer压缩的缓冲区。我有压缩代码但似乎为了解压缩我需要知道未压缩数据的大小,因为函数需要它作为参数。

如何在不知道未压缩数据大小的情况下执行此操作? 也许我应该使用RtlDecompressFragment。

代码示例会很棒!

提前致谢。

2 个答案:

答案 0 :(得分:2)

您无需知道未压缩数据的大小。您所要做的就是保留足够的内存来保存所有未压缩的数据并将其传递给API。 如果缓冲区不够大,API将返回STATUS_BAD_COMPRESSION_BUFFER,然后您必须为未压缩的数据分配更大的缓冲区。

答案 1 :(得分:2)

为什么不将一个简单的标题(前4个字节)添加(压缩)到具有未压缩大小的缓冲区?