[原创]内核代码导读--应用程序如何访问驱动程序
2011-03-15 17:03
477 查看
如:在应用程序中调用read函数,系统调用会自动找到内核的vfs_read()函数(这是系统调用部分,不用管)。
那么就从vfs_read()这个函数看起。
(vfs_read()是个库函数,把函数从用户空间跳到内核空间)
file结构体里有个成员是struct file_operations类型的。
这一行将调用驱动程序中的read函数。
上图中的file是struct file指针,看到下图,file结构体里有个file_operations类型的指针,而这个file_operations结构体里有read函数。所以上图file->f_op->read()最终是指向了file_operations结构体里对应的驱动函数
也就说是通过file这个结构体找到的驱动函数。
这部分内核代码,不用每部分都读懂,读到上述所说就行了,每一行都看懂,可能性不大而且没必要
那么就从vfs_read()这个函数看起。
(vfs_read()是个库函数,把函数从用户空间跳到内核空间)
file结构体里有个成员是struct file_operations类型的。
这一行将调用驱动程序中的read函数。
上图中的file是struct file指针,看到下图,file结构体里有个file_operations类型的指针,而这个file_operations结构体里有read函数。所以上图file->f_op->read()最终是指向了file_operations结构体里对应的驱动函数
也就说是通过file这个结构体找到的驱动函数。
这部分内核代码,不用每部分都读懂,读到上述所说就行了,每一行都看懂,可能性不大而且没必要
相关文章推荐
- [USB学习笔记]在驱动程序中如何把从应用程序传来的Event句柄转换为内核Event对象
- 【原创】也谈我如何解决Silverlight跨域访问安全性问题
- 如何向应用程序代码添加跟踪语句
- 应用程序如何使用驱动程序
- WinCE6.0中应用程序如何直接访问物理空间
- 如何使用CodeSmith批量生成代码(原创系列教程)
- 如何访问外部应用程序的SharedPreference
- Android 在 SElinux下 如何获得对一个内核节点的访问权限
- 如何让asp.net应用程序定时自动执行代码
- http(16):如何使用HttpClient库用代码访问服务器
- (转载)服务应用程序如何访问当前登录用户的信息
- 如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信
- Android 在 SElinux下 如何获得对一个内核节点的访问权限
- Android 5.0 SEAndroid下如何获得对一个内核节点的访问权限
- 如何使你的应用程序调试进.NET Framework 4.5源代码内部(适用B/S,C/S)
- SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)
- 如何为旧的 WinCE 应用程序代码工程更换SDK
- 如何将内核静态库编译连接到驱动程序中去
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、JavaScript 代码
- 驱动程序如何发通知给应用程序