我如何在驱动程序中获得CH365的配置空间的地址?
还有我可以利用WRITE_REGISTER_UCHAR()函数往配置空间里写数据吗?[Emot]1[/Emot]
我如何在驱动程序中获得CH365的配置空间的地址?
还有我可以利用WRITE_REGISTER_UCHAR()函数往配置空间里写数据吗?[Emot]1[/Emot]
我还想问下 CH365的原厂驱动程序中的中断服务程序是可以被中断信号打断的吗?
1.WINDOWS会提供配置空间的读写函数,你可以在msdn或ddk中查找 2.同上 3.可以
我想将中断服务程序变成不可中断的 是修改IoConnectInterrupt里的参数吗?
if ( mDeviceExtension -> mInterruptVector != 0 ) { // 中断向量有效 mStatus = IoConnectInterrupt( & mDeviceExtension -> mInterruptObject, mInterServiceRoutine, iDeviceObject, NULL, // 挂接到指定中断,将设备对象作为参数 mDeviceExtension -> mInterruptVector, (KIRQL) mDeviceExtension -> mInterruptLevel, (KIRQL) mDeviceExtension -> mInterruptLevel, // 中断号 mDeviceExtension -> mInterruptMode, mAddress == (PVOID)mCH365_INT_LINE_AUTO, mDeviceExtension -> mInterruptAffinity, FALSE ); // 共享/敏感 if ( NT_SUCCESS( mStatus ) ) { // 已经挂接中断 mDeviceExtension -> mInterruptLine = mINTERRUPT_LINE( mDeviceExtension -> mInterruptLevel ); // 保存挂接的中断号 if ( mDeviceExtension -> mInterruptLine == 0 ) mDeviceExtension -> mInterruptLine = (ULONG)mAddress; } } else mStatus = STATUS_NO_SUCH_DEVICE; // 中断功能未启用
这段程序我可以加到PNP例程序设备启动里吗?
只要在你设备的资源分配好了,你可以随便在哪定义,但有时要注意irql级别.
哦 谢谢