阅读:1008回复:5
请教FASTIO
请问:
Windows NT/2000平台下的FastIoXxx例程都有些什么作用,为什么不用DEVICEIOCONTROL代替?这些例程只用于文件系统驱动程序吗? 谢谢 |
|
|
沙发#
发布于:2002-06-03 08:52
谢谢!
|
|
|
板凳#
发布于:2002-06-02 22:40
在你的第一个帖子下面有一个给分的按钮的,还有一个是改分的按钮!分数只能给一次
对于不同的例程有不同的用法,具体的你要去问微软了!呵呵,估计DDK上面有 |
|
地板#
发布于:2002-06-02 22:01
我UP!
|
|
|
地下室#
发布于:2002-05-30 15:28
那么每个例程各自用于什么操作呢?
另:请问该怎么给分,不好意思。 ;) |
|
|
5楼#
发布于:2002-05-29 22:23
在IFS里面已经有说FASTIO和IRP的区别了!
3.1 IRPs Are Different From Fast I/O [This is preliminary documentation and subject to change.] IRPs are the default mechanism for requesting I/O operations. IRPs can be used for synchronous or asynchronous I/O, and for cached or noncached I/O. IRPs are also used for paging I/O. The Memory Manager processes page faults by sending appropriate IRPs to the file system. Fast I/O is specifically designed for rapid synchronous I/O on cached files. In fast I/O operations, data is transferred directly between user buffers and the system cache, bypassing the file system and the storage driver stack. (Storage drivers do not use fast I/O.) Any data to be read from a file is assumed to be resident in the system cache when the fast I/O read request is received. (The file system is responsible for ensuring that this is the case.) Otherwise, a page fault can occur, causing one or more IRPs to be generated. When this happens, the fast I/O routine either returns FALSE, indicating that the requested operation failed and the caller must create an IRP, or puts the caller into a wait state until the page fault is processed. File systems are required to support IRPs, but they are not required to support fast I/O. When the I/O Manager receives a request for synchronous file I/O (other than paging I/O), it first determines whether the target device object\'s driver contains an appropriate fast I/O callback routine. If it does, the I/O Manager invokes the fast I/O routine. If no such fast I/O routine is found, the I/O Manager creates and sends an IRP instead. File system filter drivers are not required to support I/O on control device objects. However, filter device objects attached to file systems or volumes are required to pass all unrecognized or unwanted IRPs to the next lower driver on the driver stack. In addition, filter device objects that are attached to volumes must implement FastIoDetachDevice. |
|