- Free forgotten irps

- Implement PcCompleteIrp

svn path=/trunk/; revision=41489
This commit is contained in:
Johannes Anderwald 2009-06-20 16:00:45 +00:00
parent d9042af464
commit 9c621c0524

View file

@ -143,22 +143,19 @@ PortClsPnp(
case IRP_MN_QUERY_INTERFACE: case IRP_MN_QUERY_INTERFACE:
DPRINT("IRP_MN_QUERY_INTERFACE\n"); DPRINT("IRP_MN_QUERY_INTERFACE\n");
Status = PcForwardIrpSynchronous(DeviceObject, Irp); Status = PcForwardIrpSynchronous(DeviceObject, Irp);
return Status; return PcCompleteIrp(DeviceObject, Irp, Status);
case IRP_MN_QUERY_DEVICE_RELATIONS: case IRP_MN_QUERY_DEVICE_RELATIONS:
DPRINT("IRP_MN_QUERY_DEVICE_RELATIONS\n"); DPRINT("IRP_MN_QUERY_DEVICE_RELATIONS\n");
Irp->IoStatus.Status = STATUS_NOT_SUPPORTED; Status = PcForwardIrpSynchronous(DeviceObject, Irp);
IoCompleteRequest(Irp, IO_NO_INCREMENT); return PcCompleteIrp(DeviceObject, Irp, Status);
return STATUS_NOT_SUPPORTED;
case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: case IRP_MN_FILTER_RESOURCE_REQUIREMENTS:
DPRINT("IRP_MN_FILTER_RESOURCE_REQUIREMENTS Status %x Information %p Information2 %p\n", Irp->IoStatus.Status, Irp->IoStatus.Information, IoStack->Parameters.FilterResourceRequirements.IoResourceRequirementList); DPRINT("IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
Status = Irp->IoStatus.Status; Status = PcForwardIrpSynchronous(DeviceObject, Irp);
IoCompleteRequest(Irp, IO_NO_INCREMENT); return PcCompleteIrp(DeviceObject, Irp, Status);
return Status;
case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n"); DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
Status = PcForwardIrpSynchronous(DeviceObject, Irp); Status = PcForwardIrpSynchronous(DeviceObject, Irp);
return Status; return PcCompleteIrp(DeviceObject, Irp, Status);
} }
DPRINT1("unhandled function %u\n", IoStack->MinorFunction); DPRINT1("unhandled function %u\n", IoStack->MinorFunction);
@ -289,16 +286,23 @@ PcDispatchIrp(
} }
/* /*
* @unimplemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
NTAPI
PcCompleteIrp( PcCompleteIrp(
IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp, IN PIRP Irp,
IN NTSTATUS Status) IN NTSTATUS Status)
{ {
UNIMPLEMENTED; ASSERT(DeviceObject);
return STATUS_UNSUCCESSFUL; ASSERT(Irp);
ASSERT(Status != STATUS_PENDING);
Irp->IoStatus.Status = Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status;
} }
NTSTATUS NTSTATUS