PiEventRemovalPostSurpriseRemove
INT64 PiEventRemovalPostSurpriseRemove(void){
_PNP_DEVICE_DELETE_TYPE v0;
__int64 v1;
__int64 *v2;
__int64 v3;
_RELATION_LIST **v4;
_PNP_DEVICE_DELETE_TYPE v5;
__int64 v6;
__int64 v7;
INT64 result;
v3 = *(_QWORD *)(v1 + 152);
v4 = (_RELATION_LIST **)v2;
v5 = v0;
v6 = v1;
if( v3 )
v7 = *(_QWORD *)(*(_QWORD *)(v3 + 312) + 40i64);
else
v7 = 0i64;
PnpUnlinkDeviceRemovalRelations(v1, *v2);
if( !*(_QWORD *)(v7 + 16) )
{
++*(_DWORD *)(*(_QWORD *)(v7 + 648) + 656i64);
*(_QWORD *)(v7 + 648) |= 1ui64;
}
PnpQueuePendingSurpriseRemoval(*(_DEVICE_OBJECT **)(v7 + 32), v4, *(unsigned int *)(v6 + 16), v5);
return result;
}Referenced by:
PnpProcessQueryRemoveAndEject