阅读:981回复:3
buffer methods,初学者不妨来看看
今天上了一下whdc,看到一篇关于buffer methods的文章,感觉受益匪浅。就翻译其中一些内容,并整理了一下。仅供参考。
1)DeviceObjects有三种buffer methods,为:DO_BUFFERED_IO,DO_DIRECT_IO,NEITHER,共三种; 2)所有标准的文件系统都是使用NEITHER的方式; 3)以下的IRP根据DeviceObject的buffering flag来确定所使用的buffer methods,包括: IRP_MJ_READ IRP_MJ_WRITE IRP_MJ_QUERY_EA IRP_MJ_SET_EA IRP_MJ_DIRECTORY_CONTROL IRP_MJ_QUERY_QUOTA IRP_MJ_SET_QUOTA 4)以下的IRP永远都是DO_BUFFERED_IO,包括: IRP_MJ_CREATE IRP_MJ_QUERY_INFORMATION IRP_MJ_SET_INFORMATION IRP_MJ_QUERY_VOLUME_INFORMATION IRP_MJ_SET_VOLUME_INFORMATION IRP_MJ_SYSTEM_CONTROL |
|
|
沙发#
发布于:2005-05-16 16:44
5)以下irp永远都是NEITHER,包括:
IRP_MJ_QUERY_SECURITY IRP_MJ_SET_SECURITY IRP_MJ_PNP 6)以下的IRP不会使用buffer,包括: IRP_MJ_CREATE_NAMED_PIPE IRP_MJ_CREATE_MAILSLOT IRP_MJ_LOCK_CONTROL 7)以下的IRP根据哦IoControlCode中的参数值来确定使用哪种buffering methods,包括: IRP_MJ_FILE_SYSTEM_CONTROL IRP_MJ_DEVICE_CONTROL IRP_MJ_INTERNAL_DEVICE_CONTROL |
|
|
板凳#
发布于:2005-05-16 16:47
完了。
|
|
|
地板#
发布于:2005-05-16 19:15
谢谢!
|
|