阅读:1167回复:9
请教驱动通信
各位大虾,我用以下的驱动代码,调试驱动间通信,我跟踪的时候好像在4.的位置返回,不能成功调用?为什么呢?
1.ULONG Unit1 = 1; 2.KUnitizedName uname(L\"\\\\Device\\\\CalleeDevice\", Unit1); 3.pCallee = new (NonPagedPool) KLowerDevice ((PWSTR)uname, FILE_ALL_ACCESS); 4.if ( pCallee == NULL ||!NT_SUCCESS(pCallee->ConstructorStatus()) ){ // Comm port is opened by someone else. status = STATUS_UNSUCCESSFUL; return status; } 5.KIrp I1 = KIrp::Allocate(pCallee->StackRequirement()); I1.MajorFunction(NEXT) = IRP_MJ_DEVICE_CONTROL; I1.MinorFunction(NEXT) = 0; I1.IoctlCode(NEXT) = CALLEE_IOCTL_800; I1.IoctlInputBufferSize(NEXT) = 0; I1.IoctlOutputBufferSize(NEXT) = 0; I1.SetCompletionRoutine( DeviceIoCompleteRoutine, NULL,TRUE,TRUE,TRUE ); return status = pCallee->CallWaitCompleteI1,bKeepIrp,pInformation); |
|
|
沙发#
发布于:2002-06-27 14:00
呵呵,原来师兄你也这么爱分啊。 见笑了 |
|
|
板凳#
发布于:2002-06-25 23:07
呵呵,原来师兄你也这么爱分啊。
|
|
地板#
发布于:2002-06-25 11:32
误打误闯
那给点分意思一下 |
|
|
地下室#
发布于:2002-06-25 09:45
我解决了,zydcat 提的醒
|
|
|
5楼#
发布于:2002-06-25 09:03
sorry
有序号的 没看清 |
|
|
6楼#
发布于:2002-06-25 08:59
可能是uname不对,
应该加个序号 看看你的驱动代码 |
|
|
7楼#
发布于:2002-06-25 08:54
看看pCallee是不是为NULL
|
|
8楼#
发布于:2002-06-24 22:31
你用的是DS?
|
|
9楼#
发布于:2002-06-24 18:46
高手进来指点指点
|
|
|