驱动开发之基本数据结构

根据MSDN的介绍,自己对一些基本结构做一些翻译,帮助自己理解。

指向驱动创建的设备对象的指针。当驱动成功调用IoCreateDevice时,这个成员会自动更新。驱动可以用这个成员和 DEVICE_OBJECT 的 NextDevice 成员去遍历驱动创建的所有设备对象(A driver can use this member and the NextDevice member of DEVICE_OBJECT to step through a list of all the device objects that the driver created.)

指向驱动扩展的指针。驱动扩展的唯一可访问成员是 DriverExtension->AddDevice,驱动的 DriverEntry 例程存储了驱动的 AddDevice例程。(The only accessible member of the driver extension is DriverExtension->AddDevice, into which a driver’s DriverEntry routine stores the driver’s AddDevice routine.)

指向路径 \Registry\Machine\Hardware ,在这个注册表路径存储着硬件的配置信息。(Pointer to the \Registry\Machine\Hardware path to the hardware configuration information in the registry.)

指向一个定义驱动的 fast I/O 入口的指针的指针。这个成员仅仅在FSDs个网络传输驱动里面使用。

由 I/O 管理器设置的 DriverEntry 例程的入口点。

驱动的 StartIo 例程的入口点。如果有的话,当驱动初始化的时候,DriverEntry将会设置这个值;如果驱动没有 StartIo例程,这个成员就是 NULL。

驱动的卸载例程的入口点。如果有的话,DriverEntry将在驱动初始化的时候设置这个值;如果驱动没有卸载例程,这个成员就是 NULL。

由驱动的 DispatchXxx_例程的入口点组成的 Dispatch 表。数组的索引值IRP_MJ XXX_对应着 IRP 主要函数编码。每个驱动都必须给驱动处理的 IRP_MJ _XXX_请求通过这个数组设置入口点。更多信息可以查看 Writing Dispatch Routines

Original: https://www.cnblogs.com/Arthurian/p/16822575.html
Author: Arthurian
Title: 驱动开发之基本数据结构

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685769/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球