WEB开发网
开发学院软件开发VC 如何构造一个简单的USB过滤驱动程序 阅读

如何构造一个简单的USB过滤驱动程序

 2006-07-19 11:37:11 来源:WEB开发网   
核心提示: 这两段代码基本上和自动生成的代码差不多,AddDevice的作用是构造一个过滤器的实例,如何构造一个简单的USB过滤驱动程序(4),关键的代码在Device类,在这个类里,其他驱动程序需要用Initialize来初始化设备对象和接口,对于过滤驱动,我们把过滤器插入设备栈,并拦截IRP

这两段代码基本上和自动生成的代码差不多。AddDevice的作用是构造一个过滤器的实例。

关键的代码在Device类。在这个类里,我们把过滤器插入设备栈,并拦截IRP,用自己的完成例程来实现特定的功能。

Device构造函数

UsbFilterDevice::UsbFilterDevice(PDEVICE_OBJECT Pdo, ULONG Unit) :
   KWdmFilterDevice(Pdo, NULL)
{
   T << "UsbFilterDevice::UsbFilterDevice\n";
   // Check constructor status
   if ( ! NT_SUCCESS(m_ConstructorStatus) )
   {
     return;
   }
   // Remember our unit number
   m_Unit = Unit;
   // initialize the USB lower device
   m_Usb.Initialize(this, Pdo);
   NTSTATUS status = AttachFilter(&m_Usb); //Attach the filter
   if(!NT_SUCCESS(status))
     {
     m_ConstructorStatus = status;
     return;
     }
   SetFilterPowerPolicy();
   SetFilterPnpPolicy();
}

在DDK中,我们用IoAttachDevice将设备对象插入设备栈中。DriverStudio封装了这个函数。在DriverStudio中,其他驱动程序需要用Initialize来初始化设备对象和接口,对于过滤驱动,我们关键是需要Attachfilter将其附加在堆栈中。

上一页  1 2 3 4 5 6 7  下一页

Tags:如何 构造 一个

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接