我在w2k下为非PnP串口设备Smart Card Reader写驱动,有些问题想请教!
我使用的是DDK,根据BULL TPL3的例子改动一下
处理IRP_MN_START_DEVICE时有如下代码:
irp = IoAllocateIrp(
(CCHAR) (DeviceObject->StackSize + 1),
FALSE
);
ASSERT(irp != NULL);
if (irp == NULL) {
return STATUS_NO_MEMORY;
}
irp->UserIosb = &ioStatusBlock;
IoSetNextIrpStackLocation(irp);
irpStack = IoGetCurrentIrpStackLocation(irp);
irpStack->MajorFunction = IRP_MJ_CREATE;
irpStack->Parameters.Create.Options = 0;
irpStack->Parameters.Create.ShareAccess = 0;
irpStack->Parameters.Create.FileAttributes = 0;
irpStack->Parameters.Create.EaLength = 0;
status = IoCallDriver(DeviceObject, irp);
返回 STATUS_INVALID_DEVICE_REQUEST 0xC0000010L
不只是何原因?