PnpBuildRemovalRelationList
INT64 __fastcall PnpBuildRemovalRelationList(INT64 a1, INT64 a2, INT64 a3, INT64 **a4){
__int64 v4;
_PNP_DEVICE_DELETE_TYPE v7;
_DEVICE_NODE *v8;
_UNICODE_STRING *RelationList;
_UNICODE_STRING *v10;
int v11;
_RELATION_LIST *v13;
v4 = *(_QWORD *)(a1 + 312);
*a4 = 0i64;
v7 = (int)a2;
v8 = *(_DEVICE_NODE **)(v4 + 40);
RelationList = (_UNICODE_STRING *)IopAllocateRelationList((unsigned int)a2);
v10 = RelationList;
if( !RelationList )
return 3221225626i64;
v11 = PnpProcessRelation(v8, v7, RELATION_LEVEL_DIRECT_DESCENDANT, (_PNP_VETO_TYPE *)a3, RelationList, v13);
if( v11 < 0 )
{
IopFreeRelationList(v10);
}
else
{
*a4 = (INT64 *)v10;
IopSortRelationListForRemove((__int64)v10);
}
return(unsigned int)v11;
}Referenced by:
PnpProcessQueryRemoveAndEject