阅读:1503回复:2
请教pci9054Readfile和Writefile的问题
看武安河的书上看到,在直接硬件访问(读写)和DMA方式下读写均采用Readfile和Writefile,同时在DMA方式下通过SERIALREAD和SERIALWRITE,但是还是保留有READ和WRITE两个IRP,请问两种方式下怎么区分调用的是read还是serialread哪?
|
|
驱动牛犊
|
沙发#
发布于:2007-04-19 20:11
如果是从DDK编写驱动过来的会很明白这个问题。
readfile经过IO管理器的打包成IRP_MJ_READ后由系统直接派遣到其对应的派遣例程 在DriverStudio中它就是 Read(),如果你涉及与硬件的交互,应当将这个IRP排队 系统有一个FIFO队列。会将其按进入的顺序排队,由startIo去取来进行串行化处理,这时候再调用 自己写的涉及到的对硬件操作所编写的函数serialread。反之,立刻返回。 write和读的原理一样。 |
板凳#
发布于:2007-04-28 13:03
多谢,是我自己看书不够仔细,在书上IO管理器上有不同的映射和队列的。
|
|