diff --git a/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp b/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp index 50d55fb4901..aa6f392f87d 100644 --- a/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp +++ b/reactos/drivers/wdm/audio/backpln/portcls/irpstream.cpp @@ -259,7 +259,7 @@ CIrpQueue::GetMapping( m_CurrentOffset = Offset = 0; } - if (!Irp) + if (!Irp && m_SilenceBuffer && m_MaxFrameSize) { DPRINT("NoIrp\n"); // no irp available, use silence buffer @@ -268,6 +268,13 @@ CIrpQueue::GetMapping( return STATUS_SUCCESS; } + if (!Irp) + { + // no irp buffer available + return STATUS_UNSUCCESSFUL; + } + + // get stream header StreamHeader = (PKSSTREAM_HEADER)Irp->Tail.Overlay.DriverContext[2]; diff --git a/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp b/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp index 69985c59d42..430ae5e8190 100644 --- a/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp +++ b/reactos/drivers/wdm/audio/backpln/portcls/pin_wavepci.cpp @@ -824,7 +824,6 @@ CPortPinWavePci::Init( if (!NT_SUCCESS(Status)) { DPRINT("GetAllocatorFraming failed with %x\n", Status); - return Status; } DPRINT("OptionFlags %x RequirementsFlag %x PoolType %x Frames %lu FrameSize %lu FileAlignment %lu\n",