阅读:1630回复:2
在calldriver时出现Break Due to Page fault(0EH) Fault=0000是怎么回事???在线等待
在adddevice成功后,进入startdevice中的如下语句时出错
UsbBuildGetDescriptorRequest (urb, (USHORT) sizeofstruct_URB_CONTROL_DESCRIPTOR_REQUEST), USB_DEVICE_DESCRIPTOR_TYPE, 0, 0, deviceDescriptor, NULL, siz, NULL); ntStatus = UsbTest_CallUSBD(DeviceObject, urb); ****错误就在每次进入这个CallUSBD后softice出现page fault的错误信息,这是怎么回事?? CallUSBD源码如下: KEVENT event; KeInitializeEvent(&event, NotificationEvent, FALSE); IO_STATUS_BLOCK iostatus; PIRP Irp = IoBuildDeviceIoControlRequest(IOCTL_INTERNAL_USB_SUBMIT_URB, pdx->LowerDeviceObject, NULL, 0, NULL, 0, TRUE, &event, &iostatus); if (!Irp){ KdPrint((DRIVERNAME " - Unable to allocate IRP for sending URBn")); return STATUS_INSUFFICIENT_RESOURCES; } PIO_STACK_LOCATION stack = IoGetNextIrpStackLocation(Irp); stack->Parameters.Others.Argument1 = (PVOID) urb; KdPrint(("Ready to send Urb to lower devicen"));//此处可以进入 NTSTATUS status = IoCallDriver(pdx->LowerDeviceObject, Irp); /*****错误就在此调用*******/ if(ntStatus == STATUS_SUCCESS) KdPrint(("Succeed in calling next driver in UsbTest_CallUSBD()n")); else KdPrint(("Failed in calling next driver in UsbTest_CallUSBD()n"));//调用USBD后失败并输出此错误信息 if (status == STATUS_PENDING){ KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL); status = iostatus.Status; } return status; [编辑 - 12/28/04 by rogerwoo] |
|
沙发#
发布于:2004-12-29 09:02
没人知道吗?
顶上去 |
|
板凳#
发布于:2014-10-30 16:00
请问楼主,这个问题是怎么产生的,我也遇到这个问题了,不知道如何去解决。。。跪求指导
|
|