初学者驱动问题 用户层是什么?界面?console? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DriverEntry是驱动初始化的入口,这里不能接受用户的输入。驱动一般都要指定IRP_MJ_DEVICE_CONTROL函数,可以在这个里面处理,通过DeviceIoControl写入。 在DriverEntry 可以定义str为IRP_MJ_DEVICE_CONTROL吗? IRP_MJ_DEVICE_CONTROL是个常数,I/O请求的类型代号,定义str是什么意思? 晕。DriverEntry 一般是不能直接接受用户输入的,这是OS调用的接口,一般用户根本就接触不到它,所以也就输入不了什么东东! 驱动是通过功能码与用户层面通信的。该功能码即可以自己定义,也可以用已经有的如IRP_MJ_READ。 当你通过功能码与驱动通信时,参数是通过一个叫做IRP包的结构传进去的。至于该IRP包里面的数据该怎么解释,应该遵从相关功能码的规定。 至于用户层面怎么用这个功能码,通用的就是DeviceIoControl。这个不管是已有功能码或是自己定义的功能码都可以用;对于已经有的功能码来说,一般都有相应的API与其对应。如与IRP_MJ_READ对应的API就是ReadFile。 建议LZ先搞懂驱动与OS的交互再来写。要不然,你可能会对一些“规定”感到非常茫然。 我说的指定IRP_MJ_DEVICE_CONTROL是这个意思: DriverObject->MajorFunction[IRP_MJ_CREATE] = Open; DriverObject->MajorFunction[IRP_MJ_CLOSE] = Close; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DeviceControl; DriverObject->MajorFunction[IRP_MJ_CLEANUP] = Cleanup; DriverObject->DriverUnload = Unload;有了DeviceControl函数,就可以处理输入输出了 驱动一般都要指定IRP_MJ_DEVICE_CONTROL函数,可以在这个里面处理,通过DeviceIoControl写入 在VC6.0中如何连接、使用SQLite数据库?有没有相关例程? 散分帖 祝自己生日快乐 请问OllyDbg1.1如何拦截Notepad的关于对话框?? 请教:图像拼接问题 初学: 关于Unicode与LPCTSTR的一个奇怪的问题,请帮忙 hx, 请来领分. ActiveX问题 如何使图象变形,扭曲 费尽心机作了个东西,大家看看吧! 为什么我的程序不能编译?? 用do.moveto和do.lineto画图。。。 怎样实现查询信息及统计信息的报表打印?数据库是sql server 2000.
建议LZ先搞懂驱动与OS的交互再来写。要不然,你可能会对一些“规定”感到非常茫然。
DriverObject->MajorFunction[IRP_MJ_CREATE] = Open;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = Close;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DeviceControl;
DriverObject->MajorFunction[IRP_MJ_CLEANUP] = Cleanup;
DriverObject->DriverUnload = Unload;
有了DeviceControl函数,就可以处理输入输出了