大家好!我刚看了一下驱动开发,很想知道一个驱动程序是怎么把信息传递给应用程序交互的!!例如如下的一个简单驱动:///
/// @file first.c
/// @author crazy_chu
/// @date2008-11-1
/// #include <ntddk.h>

// 提供一个Unload函数只是为了
VOID DriverUnload(PDRIVER_OBJECT driver)
{
// 但是实际上我们什么都不做,只打印一句话:
DbgPrint("first: Our driver is unloading…\r\n");
}// DriverEntry,入口函数。相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
#if DBG
//       _asm int 3
#endif
// 这是我们的内核模块的入口,可以在这里写入我们想写的东西。
// 我在这里打印一句话。因为”Hello,world” 常常被高手耻笑,所以
// 我们打印一点别的。
DbgPrint("first: Hello, my salary!"); // 设置一个卸载函数便于这个函数能退出。
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
我想把里面的那些输出信息在VC中给显示出来,应该怎么做啊??

解决方案 »

  1.   

    http://www.codeproject.com/KB/system/driverdev.aspx
      

  2.   

    张帆的 windows内核驱动开发技术详解
    应用层 驱动层通讯 有介绍
      

  3.   

    DeviceIoContrl + 内核对象
      

  4.   

    1,DeviceIoContrl 
    2,内核对象(Event,Mutex等)
      

  5.   

    应用程序和驱动之间,有read write,还有就是deviceiocontrol
      

  6.   

    驱动的调试信息DbgPrint跟应用程序的OutputDebugString是一个机制,都是输出到系统的调试信息缓冲区,去下个叫debugview的工具,能方便的查看,不需要在vc中再编个程序
    所谓的驱动与APP的交互是通过接口来做的,对应的驱动中你应该负责处理RP_MJ_READ,IRP_DEVICE_IO_CONTROL的IRP