0

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

4

2 回答 2

3

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

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

于 2010-04-21T12:35:56.090 回答
0

你有 IOCTL 发送到的驱动程序的源代码吗?
您将句柄传递给DeviceIoControl- 使用调用打开句柄CreateFile(L"XXX#:",...)- XXX 是注册表中设置的驱动程序的前缀。# 是驱动程序在加载时给出的索引(也可以在注册表中设置)。要查看执行的功能,请在驱动程序的源代码中
搜索您发送到的 IOCTL 。DeviceIoControl你会在驱动程序的实现中找到它XXX_IoControl

于 2010-04-28T13:28:08.147 回答