PnpFreeResourceRequirementsForAssignTable
VOID __stdcall PnpFreeResourceRequirementsForAssignTable(
_PNP_RESOURCE_REQUEST *RequestTable,
_PNP_RESOURCE_REQUEST *RequestTableEnd){
void **p_ReqList;
unsigned __int64 v3;
void *v4;
if( RequestTable < RequestTableEnd )
{
p_ReqList = &RequestTable->ReqList;
v3 = ((unsigned __int64)((char *)RequestTableEnd - (char *)RequestTable - 1) >> 6) + 1;
do
{
IopFreeReqList(*p_ReqList);
*p_ReqList = 0i64;
if( (*(_DWORD *)(p_ReqList - 3) & 0x200) != 0 )
{
v4 = *(p_ReqList - 1);
if( v4 )
{
ExFreePoolWithTag(v4, 0);
*(p_ReqList - 1) = 0i64;
}
}
p_ReqList += 8;
--v3;
}
while( v3 );
}
}Referenced by:
PnpAllocateResources
PnpGetResourceRequirementsForAssignTable
PnpReallocateResources
PnpRebalance
PnpRestoreResourcesInternal