阅读:1312回复:2
针对同一PCI设备的读写操作,系统线程中的操作是否会被DPC中的操作中断?
使用9052做的PCI卡,定义了两个地址空间,驱动程序要向这两个地址空写入数据。对这两个地址空间写入数据的方式不相同。
对地址空间A的写入操作是在硬件中断的触发下写入固定数量的数据,数据量不大(一次十几K DWORD),但要求要可靠,不可以丢中断。 对地址空间B的写入操作是随机产生的,数据量很大(一次有数M DWORD),但这个操作的实时性要求不高。 驱动程序打算这样写: APP传下一个写操作IRP,驱动判断其写入的目标地址。 如地址指向地址空间A,则该IRP被排队等待PCI卡的硬件中断,中断到达后,申请一个DPC执行数据写操作。 如地址指向地址空间B,则把数据写操作交给系统线程来做。 问题: 由于指向地址空间B的数据传输量较大,则其在传输过程中,APP上肯定会有写地址空间A的IRP传下,并且也一定会有硬中断发生。问题在于两个写操作所针对的硬件是同一块卡,操作B会不会被操作A所中断?虽然DPC的执行级别高过系统线程,但没有这么做过,心里没底。在动手之前,还请各位老大指教一二! 谢谢。 |
|
|
沙发#
发布于:2004-01-30 08:22
使用9052做的PCI卡,定义了两个地址空间,驱动程序要向这两个地址空写入数据。对这两个地址空间写入数据的方式不相同。 会 |
|
|
板凳#
发布于:2004-01-30 13:46
谢谢!
|
|
|