阅读:1884回复:3
irp->AssociatedIrp.SystemBuffer的内容可以改变吗?
irp->AssociatedIrp.SystemBuffer是指向用户区的缓冲,请问在内核态,也就是在驱动中可以改变该缓冲的内容吗?
|
|
沙发#
发布于:2004-10-12 14:35
不是很清楚,不过这里有点参考资料
CTL_CODE 宏参数 DeviceType 共给 IoCreateDevice 的 FILE_DEVICE_XXX 值 . 0x0000 to 0x7fff 为 Microsoft 保留 . 0x8000 to 0xffff 为 客户定义 ControlCode 驱动程序定义的 IOCTL 代码 . 0x000 to 0x7ff 为 Microsoft 保留 . 0x800 to 0xfff 为 客户定义 TransferType 控制代码的缓冲区传送机制 . METHOD_BUFFERD 通过中间缓冲传送 . METHOD_IN_DIRECT . METHOD_OUT_DIRECT . METHOD_NEITHER RequiredAccess 请求者访问要求 . FILE_ANY_ACCESS . FILE_READ_DATA . FILE_WRITE_DATA . FILE_READ_DATA|FILE_WRITE_DATA #define IO_TYPE 0x9001 /* 32768-65535 are reserved for customers */ #define R_PORT_CHAR ( CTL_CODE(IO_TYPE, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS) ) #define R_REG_BUF_LONG ( CTL_CODE(IO_TYPE, 0x818, METHOD_IN_DIRECT, FILE_READ_DATA) ) // buffer write #define W_PORT_BUF_CHAR ( CTL_CODE(IO_TYPE, 0x819, METHOD_OUT_DIRECT, FILE_WRITE_DATA) ) 呵呵,好像有点偏题,是不是? 其实是少了些什么! :D 太多了不好写。 要是驱动程序从设备取回的数据放不到用户的系统缓冲中去,那要驱动干什么用!我也是不懂的,纯属业余爱好,随便聊聊 [编辑 - 10/12/04 by xx_focus] |
|
板凳#
发布于:2004-10-12 19:15
irp->AssociatedIrp.SystemBuffer是指向用户区的缓冲??
谁说的?? 他是指向核心内存的,你可以修改里面的东西,不过指针最好别动 |
|
|
地板#
发布于:2004-10-13 11:57
我又明白了一点,谢谢wowocock
|
|