Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1197回复:14

DeviceIoControl的参数怎么错了???

楼主#
更多 发布于:2004-12-22 16:24
   ULONG nOutput=0;
   void* reVal;  
if (!DeviceIoControl(
hDevice, YK_IOCTL_DRIVER_802,
NULL,   // input data buffer
0,      // size of input data buffer
reVal,  // output data buffer
100,    // size of output data buffer
&nOutput,
NULL)
)
{
DWORD dError=GetLastError();//87 ->The parameter is incorrect.
if(dError==87)
AfxMessageBox("87 ->The parameter is incorrect");
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-12-22 16:33
你跟到驱动的相关部分,看看哪里的问题.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-22 16:43
reVal, // output data buffer
100, // size of output data buffer

是不要指定一块内存,

不能仅仅void* reVal;这样子吧
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-22 17:09
reVal, // output data buffer
100, // size of output data buffer

是不要指定一块内存,

不能仅仅void* reVal;这样子吧

对,需要分配空间,堆栈也可以
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-22 19:09
也不正确  char reVal[100];
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-22 19:23
也不正确char* reVal= new char[100];
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2004-12-22 20:24
关键是看你驱动部分是如何处理的,STATUS和INFORMATION部分是否都设置正确了,你在应用部分整有什么用??
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2004-12-22 20:26
是驱动返回的错误
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-23 08:30
检查一下驱动端对YK_IOCTL_DRIVER_802的处理
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-23 10:06
非常郁闷:
居然没有输出  handle YK_IOCTL_DRIVER_802
NTSTATUS Camera_DriverDevice::DeviceControl(KIrp I)
{
NTSTATUS status;

   t << "Entering Camera_DriverDevice::Device Control, " << I <<"*****"<<I.IoctlCode()<< EOL;
switch (I.IoctlCode())
{
   case YK_IOCTL_DRIVER_802://获得驱动程序版本信息
t<<"handle YK_IOCTL_DRIVER_802"<<EOL;
status = YK_IOCTL_DRIVER_802_Handler(I);
   break;
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-23 10:49
那就是驱动端的代码有问题
或者驱动没有正确加载
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-23 10:56
驱动其它功能一切正常!

相关代码我贴出来了! :(
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
blue215
驱动牛犊
驱动牛犊
  • 注册日期2004-01-05
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-23 11:04
YK_IOCTL_DRIVER_802
这个值是在驱动程序中定义的,应用程序必须与驱动程序中的一样,所以,看你是否包含了定义它的头文件
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2004-12-23 11:47
你在驱动的该处下断点然后跟踪看看是什么问题.最好看汇编代码这样就很清楚了.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-12-23 12:26
 
你在驱动的该处下断点然后跟踪看看是什么问题



怎么操作??
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
游客

返回顶部