首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跟踪DeviceioControl实现的函数

跟踪DeviceioControl实现的函数
EN

Stack Overflow用户
提问于 2010-04-21 20:09:37
回答 2查看 1.2K关注 0票数 0

我正在使用一个WinCE设备,它有一个用MFC编写的无线电管理器驱动程序。在无线电GUI的代码中,我可以看到调用了特定IOCTL的函数Deviceiocontrol。但是,我无法跟踪此函数调用的特定代码段。有人能告诉我Deviceiocontrol是怎么工作的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-21 20:35:56

DeviceIoControl通过使用文件句柄直接调用设备驱动程序。如果你想进入设备驱动程序本身,你必须使用内核调试器。

文件句柄表示一个内核对象,它由一个包含函数表的DEVICE_OBJECT结构组成。在此表中,在IRP_MJ_DEVICE_CONTROL的索引处,驱动程序设置其句柄函数。然后,使用被打包到IRP中的io控制参数来调用该函数。

票数 3
EN

Stack Overflow用户

发布于 2010-04-28 21:28:08

您是否有IOCTL发送到的驱动程序的源代码?

将句柄传递给DeviceIoControl -调用CreateFile(L"XXX#:",...) - XXX作为注册表中设置的驱动程序的前缀来打开句柄。#是驱动程序在加载时提供的索引(也可以在注册表中设置)。

要查看所执行的功能,请在驱动程序的源代码中搜索发送给DeviceIoControl的IOCTL。您可以在驱动程序的XXX_IoControl实现中找到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2682684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档