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