IopDuplicateDetection

NTSTATUS __stdcall IopDuplicateDetection(
        _INTERFACE_TYPE LegacyBusType,
        UINT64 BusNumber,
        UINT64 SlotNumber,
        _DEVICE_NODE **DeviceNode){
  NTSTATUS v4; 
  unsigned int v6; 
  unsigned int v7; 
  _DEVICE_NODE *LegacyBusDeviceNode; 
  int v10; 
  void(__fastcall **v12)(_QWORD); 
  __int64 v13[5]; 
  VOID *Interface; 

  v4 = 0;
  Interface = 0i64;
  v6 = SlotNumber;
  v13[0] = 0i64;
  v7 = BusNumber;
  *DeviceNode = 0i64;
  LegacyBusDeviceNode = IopFindLegacyBusDeviceNode(LegacyBusType, BusNumber);
  if( !LegacyBusDeviceNode )
    return -1073741808;
  IopQueryResourceHandlerInterface(
    ResourceLegacyDeviceDetection,
    LegacyBusDeviceNode->PhysicalDeviceObject,
    0,
    &Interface);
  if( v10 < 0 )
    return -1073741808;
  v12 = (void(__fastcall **)(_QWORD))Interface;
  if( !Interface )
    return -1073741808;
  if( (*((int(__fastcall **)(_QWORD, _QWORD, _QWORD, _QWORD, __int64 *))Interface + 4))(
         *((_QWORD *)Interface + 1),
         (unsigned int)LegacyBusType,
         v7,
         v6,
         v13) >= 0
    && v13[0] )
  {
    *DeviceNode = *(_DEVICE_NODE **)(*(_QWORD *)(v13[0] + 312) + 40i64);
  }
  else
  {
    v4 = -1073741808;
  }
  v12[3](v12[1]);
  ExFreePoolWithTag(v12, 0);
  return v4;
}

Referenced by:

IoReportDetectedDevice