[PORTCLS]

- fix crash / assert triggered with cwawdm driver
- fix irp leak
- CORE 7822

svn path=/trunk/; revision=66203
This commit is contained in:
Johannes Anderwald 2015-02-08 08:11:51 +00:00
parent 3d3bdc5873
commit 89896f9912
2 changed files with 14 additions and 1 deletions

View file

@ -552,6 +552,7 @@ CIrpQueue::GetMappingWithTag(
{
// no irp available
m_OutOfMapping = TRUE;
DPRINT("GetMappingWithTag no mapping available\n");
return STATUS_NOT_FOUND;
}
@ -611,6 +612,7 @@ CIrpQueue::GetMappingWithTag(
StreamData->CurStreamHeader = (PKSSTREAM_HEADER)((ULONG_PTR)StreamData->CurStreamHeader + StreamData->CurStreamHeader->Size);
}
DPRINT("GetMappingWithTag Tag %p Buffer %p Flags %lu ByteCount %lx\n", Tag, VirtualAddress, *Flags, *ByteCount);
// done
return STATUS_SUCCESS;
}
@ -654,6 +656,12 @@ CIrpQueue::ReleaseMappingWithTag(
// remove irp from used list
CurEntry = ExInterlockedRemoveHeadList(&m_FreeIrpList, &m_IrpListLock);
if (CurEntry == NULL)
{
// this should not happen
DPRINT("ReleaseMappingWithTag Tag %p not found\n", Tag);
return STATUS_NOT_FOUND;
}
// sanity check
PC_ASSERT(CurEntry);
@ -743,6 +751,11 @@ CIrpQueue::ReleaseMappingWithTag(
// complete the request
IoCompleteRequest(Irp, IO_SOUND_INCREMENT);
}
else
{
// there are still some headers not consumed
ExInterlockedInsertHeadList(&m_FreeIrpList, &Irp->Tail.Overlay.ListEntry, &m_IrpListLock);
}
return STATUS_SUCCESS;
}

View file

@ -228,7 +228,7 @@ CPortWavePci::Init(
IN PRESOURCELIST ResourceList)
{
IMiniportWavePci * Miniport;
PSERVICEGROUP ServiceGroup;
PSERVICEGROUP ServiceGroup = 0;
NTSTATUS Status;
PPINCOUNT PinCount;
PPOWERNOTIFY PowerNotify;