阅读:1337回复:4
IRP结构中Flags域,用来做什么用,如果是IRP_MJ_READ,是不是就是说数据用的是之间IO传输!
请教一下:
IRP结构中Flags域,用来做什么用?如果是IRP_MJ_READ,是不是就是说读取数据用的是直接IO传输! |
|
|
沙发#
发布于:2005-01-22 11:26
请教一下: 这个位要根据你具体硬件的要求进行设置的。(一般在AddDevice例程中完成) 可以设置成为你想要的设备数据传输方式。 可以是DIRECT IO 或者是 BUFFER IO 还可以可编程IO三种传输方式。 一般都用前两种! |
|
|
板凳#
发布于:2005-01-22 11:30
请教一下: 不好意思。。。。。。。看错题目了 呵呵 刚说的是DEVICEOBLECT 中的Flags IRP中的这个位是ULONG类型,包含一些对驱动程序只读的标志。但这些标志与WDM驱动程序无关。如果但是写驱动,你不用考虑它的! |
|
|
地板#
发布于:2005-01-22 12:32
非常感谢您的回答,想继续问一下。
如果你说的deviceobject中的flags可以标记用那个传输方式。 1。直接I/O 2。内存映射 3。DMA 这3种的区别,是什么。 如果3种都选择,驱动怎么来判断什么时候用那种传输方式。? 既然实际传输的时候只能用一种方式,为什么要3种都选择呢?难道3种能同时工作?? |
|
|
地下室#
发布于:2005-01-22 16:36
非常感谢您的回答,想继续问一下。 是有三种方式供你选择。 但你只能选其中 的一种!! 还有。。。 你说的那三种方式不对的。。 我二楼不是跟你说清楚了, 这三种传输方式是:DIRECT IO 或者是 BUFFER IO 还可以可编程IO三种传输方式。 建议自己找本书看看。。。 里面都有介绍的。。。 |
|
|