PiSwRemovePdoAssociation
INT64 __fastcall PiSwRemovePdoAssociation(INT64 a1, INT64 a2){
unsigned int v2;
PADAPTER_OBJECT *PdoAssociation;
PADAPTER_OBJECT v4;
PADAPTER_OBJECT **v5;
PADAPTER_OBJECT v6;
PADAPTER_OBJECT **v7;
v2 = 0;
PdoAssociation = (PADAPTER_OBJECT *)PiSwFindPdoAssociation(a1, a2, 0);
if( PdoAssociation )
{
v4 = *PdoAssociation;
if( (PADAPTER_OBJECT *)(*PdoAssociation)->DmaOperations != PdoAssociation
|| (v5 = (PADAPTER_OBJECT **)PdoAssociation[1], *v5 != PdoAssociation)
|| (*v5 = (PADAPTER_OBJECT *)v4,
v4->DmaOperations = (_DMA_OPERATIONS *)v5,
v6 = PdoAssociation[2],
(PADAPTER_OBJECT *)v6->DmaOperations != PdoAssociation + 2)
|| (v7 = (PADAPTER_OBJECT **)PdoAssociation[3], *v7 != PdoAssociation + 2) )
{
__fastfail(3u);
}
*v7 = (PADAPTER_OBJECT *)v6;
v6->DmaOperations = (_DMA_OPERATIONS *)v7;
PiSwPdoAssociationFree(PdoAssociation);
}
else
{
return(unsigned int)-1073741275;
}
return v2;
}Referenced by:
PiSwUnassociateDeviceObject