LittleCoffee
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2007-10-03
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:846回复:0

很简单的问题:取并口端口号(40分)

楼主#
更多 发布于:2004-04-02 17:35
case IOCTL_TEST:
KdPrint( ("Test\n") );
RtlInitUnicodeString(&objn,L"\\Device\\ParallelPort0");
ntStatus=IoGetDeviceObjectPointer( &objn, FILE_ALL_ACCESS, &FileObject, &bdo );
if( !NT_SUCCESS(ntStatus) ){
KdPrint( ("Fail1\n") );
}
KdPrint( ("IoGetDeviceObjectPointer OK\n") );

KeInitializeEvent( &event, NotificationEvent, FALSE );
if(bdo!=NULL)
{
irp=IoBuildDeviceIoControlRequest(
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO,
bdo,
NULL,
0,
&pInf,
sizeof(PARALLEL_PORT_INFORMATION),
TRUE,
&event,
&pStatus
);
KdPrint( ("IoBuildDeviceIoControlRequest OK\n") );
li = pInf.OriginalController;
}
status=IoCallDriver(bdo,irp);
if (!NT_SUCCESS(status)) {
return status;
}

status = KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
if (!NT_SUCCESS(status)) {
return status;
}
// IoFreeIrp(irp); <---------------- 1
KdPrint( ("%x\n", li) ); <---------------- 2

break;


在2处显示的东西不是端口号啊,还有,如果我把1加上,就兰屏,不解的说 :(
游客

返回顶部