内核模式驱动程序写入文件

我正在使用Windows键盘filter驱动程序,我需要写入一个文件。 我尝试使用zwcreate,zwwrite和zwclose,但驱动程序没有运行在PASSIVE_LEVEL,我得到了蓝屏。 我从来没有写过Windows驱动程序。 谢谢您的帮助!

编辑:谢谢J.传球!

计划工作项(IoAllocateWorkItem / IoQueueWorkItem)并处理工作项回调例程中的所有文件I / O。

我不确定是否让内核驱动程序首先写入文件是一个好主意。 做这个恕我直言的最好方法是提供一个与驱动程序通信的用户空间程序,获取数据然后写入磁盘。

这对于Unix来说是正确的,但对于Windows而言则是如此。

使用Zw-Tools从设备驱动程序写入文件的一个很好的例子是在rootkit.com上发现的Clandestiny的Klog。 它目前帮助我很多。

还有,我同意Johannes的观点,即直接从驱动程序中进行古典用户级工作(file / net /…- access)是不可取的。 这不仅是错误的发生,将来也可能打破不可预测的状况。 用户界面通常更加稳定和灵活。