娜肟诤荄riverEntry()函数,如何理解这个函数的执行过程很关键。以前学C语言的时候是从main()函数从头写起,驱动却是接着操作系统写。C程序所有的函数参数都是自己设计,自己调用,自己赋值。参数的传递过程很透明,这与驱动很不相同。DriverEntry()的参数从何而来,是DriverEntry()传递给系统,还是系统传递给DriverEntry()。初学这点比较混乱。
经过仔细分析细节是这样的:首先我们要站在DriverEntry()里面来理解这个过程,我们的对面是操作系统。在这个过程中操作系统作了主要的工作量。当系统需要调用驱动的时候,对象管理器负责创建驱动对象DriverObject,配置管理程序负责搜索注册表中的服务键并赋值给RegistryPath。然后调用DriverEntry(),并把这两个参数的地址传递进来。然后我们完成DriverEntry()的主体,完成初始化。
DriverEntry()的参数是由系统在需要时自动创建的传递给DriverEntry()的。
文章评论(0条评论)
登录后参与讨论