[ros-diffs] [janderwald] 41489: - Free forgotten irps - Implement PcCompleteIrp
janderwald at svn.reactos.org
janderwald at svn.reactos.org
Sat Jun 20 18:00:46 CEST 2009
Author: janderwald
Date: Sat Jun 20 20:00:45 2009
New Revision: 41489
URL: http://svn.reactos.org/svn/reactos?rev=41489&view=rev
Log:
- Free forgotten irps
- Implement PcCompleteIrp
Modified:
trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.c
Modified: trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.c?rev=41489&r1=41488&r2=41489&view=diff
==============================================================================
--- trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/wdm/audio/backpln/portcls/irp.c [iso-8859-1] Sat Jun 20 20:00:45 2009
@@ -143,22 +143,19 @@
case IRP_MN_QUERY_INTERFACE:
DPRINT("IRP_MN_QUERY_INTERFACE\n");
Status = PcForwardIrpSynchronous(DeviceObject, Irp);
- return Status;
-
+ return PcCompleteIrp(DeviceObject, Irp, Status);
case IRP_MN_QUERY_DEVICE_RELATIONS:
DPRINT("IRP_MN_QUERY_DEVICE_RELATIONS\n");
- Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
- return STATUS_NOT_SUPPORTED;
+ Status = PcForwardIrpSynchronous(DeviceObject, Irp);
+ return PcCompleteIrp(DeviceObject, Irp, Status);
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);
- Status = Irp->IoStatus.Status;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
- return Status;
+ DPRINT("IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
+ Status = PcForwardIrpSynchronous(DeviceObject, Irp);
+ return PcCompleteIrp(DeviceObject, Irp, Status);
case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
Status = PcForwardIrpSynchronous(DeviceObject, Irp);
- return Status;
+ return PcCompleteIrp(DeviceObject, Irp, Status);
}
DPRINT1("unhandled function %u\n", IoStack->MinorFunction);
@@ -289,16 +286,23 @@
}
/*
- * @unimplemented
+ * @implemented
*/
-NTSTATUS NTAPI
+NTSTATUS
+NTAPI
PcCompleteIrp(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN NTSTATUS Status)
{
- UNIMPLEMENTED;
- return STATUS_UNSUCCESSFUL;
+ ASSERT(DeviceObject);
+ ASSERT(Irp);
+ ASSERT(Status != STATUS_PENDING);
+
+ Irp->IoStatus.Status = Status;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return Status;
}
NTSTATUS
More information about the Ros-diffs
mailing list