阅读:1807回复:2
如何直接IO操作处理IOCTL代码?
各位朋友,本人在开发一套PCI驱动程序,使用直接IO操作处理IOCTL代码,用来传递大量数据并送回应用层。有时总出现页故障或者页保护错误。请问怎么回事?您焦急的朋友。
|
|
|
沙发#
发布于:2001-07-02 15:39
用户态数据在分页内存中,IOCTL_code 的处理在非分页内存中,
这中间数据的交换必须有系统完成。(这个动作是在后台的,对用户是不可见的,但可以理解成有这个动作) 你的方法,好象直接在这两个状态切换,随意交换数据,出问题也就不奇怪了! |
|
板凳#
发布于:2001-07-03 15:05
感谢您的指导,我用DeviceIoControl发送代码,我把从硬件读的数据写到驱动程序处理代码时的内存映射空间mem.MapToSystemSpace()然后在应用程序层又从定义的输出缓冲区把数据读到用户。一次处理1024个字节时出错的频率高,但一次处理256个字节时出错的频率较低。我该如何?
|
|
|