https://git.reactos.org/?p=reactos.git;a=commitdiff;h=789cfd3ddc6cd15d80db1…
commit 789cfd3ddc6cd15d80db120d0ddcc1e7616ce85d
Author: Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Mon Feb 25 12:48:54 2019 +0100
Commit: Thomas Faber <thomas.faber(a)reactos.org>
CommitDate: Tue Feb 26 09:20:47 2019 +0100
[HDAUDBUS] Forward FDO requests instead of completing them.
---
drivers/wdm/audio/hdaudbus/hdaudbus.cpp | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/drivers/wdm/audio/hdaudbus/hdaudbus.cpp
b/drivers/wdm/audio/hdaudbus/hdaudbus.cpp
index 2c82a9a4f7..b8eacba435 100644
--- a/drivers/wdm/audio/hdaudbus/hdaudbus.cpp
+++ b/drivers/wdm/audio/hdaudbus/hdaudbus.cpp
@@ -101,28 +101,26 @@ HDA_FdoPnp(
{
case IRP_MN_START_DEVICE:
Status = HDA_FDOStartDevice(DeviceObject, Irp);
- break;
+ Irp->IoStatus.Status = Status;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ return Status;
case IRP_MN_QUERY_DEVICE_RELATIONS:
/* handle bus device relations */
if (IoStack->Parameters.QueryDeviceRelations.Type == BusRelations)
{
Status = HDA_FDOQueryBusRelations(DeviceObject, Irp);
+ Irp->IoStatus.Status = Status;
+ if (!NT_SUCCESS(Status))
+ {
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ return Status;
+ }
}
- else
- {
- Status = Irp->IoStatus.Status;
- }
- break;
- default:
- /* get default status */
- Status = Irp->IoStatus.Status;
break;
}
- Irp->IoStatus.Status = Status;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
-
- return Status;
+ IoSkipCurrentIrpStackLocation(Irp);
+ return IoCallDriver(FDODeviceExtension->LowerDevice, Irp);
}
NTSTATUS