X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=drivers%2Fwdm%2Faudio%2Fhdaudbus%2Fhdaudbus.cpp;h=b8eacba4358b482332fd08c6aa119fc36e96966d;hp=2c82a9a4f75d0051419ffdec036e1817f32264f9;hb=789cfd3ddc6cd15d80db120d0ddcc1e7616ce85d;hpb=ce6960b3f559e0c283d95c6e72c66a0698945a83 diff --git a/drivers/wdm/audio/hdaudbus/hdaudbus.cpp b/drivers/wdm/audio/hdaudbus/hdaudbus.cpp index 2c82a9a4f75..b8eacba4358 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