deviceiocontrol专题

IO设备控制操作--DeviceIoControl

1.除了ReadFile和WirteFile以外,应用程序还可以通过另外一个API DeviceIoControl 操作设备。DeviceIoControl内部会使操作系统创建一个IRP_MJ_DEVICE_CONTROL类型的IRP,然后操作系统会将这个IRP转发到派遣函数中。 2.I/O控制码(IOCTL)一个32位值。DDK提供一个宏CTL_CODE(devicetype,Funct

CreateFile DeviceIoControl dwIoControlCode——应用程序与驱动程序通信

转自:CreateFile DeviceIoControl dwIoControlCode——应用程序与驱动程序通信   在“进程内存管理器中”的一个Ring0,Ring3层通信问题,之前也见过这样的代码,这次拆分出来详细总结一下。   先通过CreateFile函数得到设备句柄,CreateFile函数原型:    HANDLE CreateFile(LPCTSTR lpFile

实战DeviceIoControl 之六:访问物理端口

Q 在NT/2000/XP中,如何读取CMOS数据? Q 在NT/2000/XP中,如何控制speaker发声? Q 在NT/2000/XP中,如何直接访问物理端口? A 看似小小问题,难倒多少好汉! NT/2000/XP 从安全性、可靠性、稳定性上考虑,应用程序和操作系统是分开的,操作系统代码运行在核心态,有权访问系统数据和硬件,能执行特权指令;应用程序运行在用户 态,能够使用的接

实战DeviceIoControl 之五:列举已安装的存储设备

Q 前几次我们讨论的都是设备名比较清楚的情况,有了设备名(路径),就可以直接调用CreateFile打开设备,进行它所支持的I/O操作了。如果事先并不能确切知道设备名,如何去访问设备呢? A 访问设备必须用设备句柄,而得到设备句柄必须知道设备路径,这个套路以你我之力是改变不了的。每个设备都有它所属类型的GUID,我们顺着这个GUID就能获得设备路径。 GUID是同类或同种设备的全球唯一识别

实战DeviceIoControl之一:通过API访问设备驱动程序

作者:不祥  来源于:网络  发布时间:2005-10-4 Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢? A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及