阅读:1679回复:1
请教ddk中serial驱动中读写irp的处理流程问题。
各位好:
俺乃一驱动菜鸟,现在需要(工作,为了生计)自己写一个RS232的串口驱动。看了好久了,有几个问题实在是搞不懂, 请教一下各位,先给看帖的各位作揖,谢谢,谢谢谢谢 1.那些设置控制的操作最后都传化为读写寄存器了(在serial.h中WRITE_PORT_UCHAR(),READ_PORT_UCHAR() )? 2.写操作是不是最后也转化为写寄存器了(WRITE_TRANSMIT_FIFO_HOLDING() 函数)? 3.读操作的irp中数据(指irp中的irp->AssociatedIrp.SystemBuffer)数据是从哪里得到的?程序在read.c的SerialGetCharsFromIntBuffer()函数有Rtlmovememory()操作来填充此数据,但是RtlMoveMemory()函数的第二个参数Extension->FirstReadableChar是根据Extension->InterruptReadBuffer计算出来的,现在的问题是找遍了整个文件,还是没有找到Extension->InterruptReadBuffer是怎么赋值的,可以看见它的初始化,删除操作。 就是以上三个问题,有谁知道这个驱动,麻烦给解答解答,先谢谢了! |
|
沙发#
发布于:2009-09-08 23:16
回个吧(刚学驱动,现在也为驱动烦):Extension->InterruptReadBuffer看是不是读的注册表........读写最终都是操作寄存器.........
|
|