https://git.reactos.org/?p=reactos.git;a=commitdiff;h=789cfd3ddc6cd15d80db12...
commit 789cfd3ddc6cd15d80db120d0ddcc1e7616ce85d Author: Thomas Faber thomas.faber@reactos.org AuthorDate: Mon Feb 25 12:48:54 2019 +0100 Commit: Thomas Faber thomas.faber@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