如何为过滤器驱动程序创建持久存储?

时间:2013-03-19 19:13:21

标签: visual-c++ visual-studio-2012 kernel filter-driver

我试图通过使用结构

来保存某些数据,如某些位图
typedef struct _BITMAPDATA
{
    CHAR* bitmapData;
    ULONG bitmapSize;
}BITMAPDATA,*PBITMAPDATA;

我已经通过过滤器驱动程序创建了这些位图,位图工作正常,但如何将该位图存储在硬盘等持久存储中。这样每当系统崩溃或意外关闭时,驱动程序必须存储在持久存储中创建的所有位图,并且在系统重新启动时,它将重新加载它们。

1 个答案:

答案 0 :(得分:1)

如果系统崩溃或意外关闭,您无法确定是否有任何问题,包括保存数据。您可以尝试保存数据,但不能保证成功。您可以使用内核文件处理API,例如ZwWriteFile。您可以注册一个bug check callback routine,它会在发生错误检查(即系统崩溃)时将您的数据写入文件但是之前说过 - 由于事件的性质而无法保证成功 - 发生的错误可能会阻止文件写作,例如。