IopInsertRemoveDevice

VOID __stdcall IopInsertRemoveDevice(_DRIVER_OBJECT *DriverObject, _DEVICE_OBJECT *DeviceObject, UINT8 Insert){
  KIRQL v6; 
  _QWORD *i; 
  v6 = KeAcquireQueuedSpinLock(0xAui64);
  if( Insert )
  {
    *((_QWORD *)DeviceObject + 2) = DriverObject->DeviceObject;
    DriverObject->DeviceObject = DeviceObject;
  }
  else
  {
    for( i = (_QWORD *)(*((_QWORD *)DeviceObject + 1) + 8i64);
          (_DEVICE_OBJECT *)*i != DeviceObject;
          i = (_QWORD *)(*i + 16i64) )
    {
      ;
    }
    *i = *((_QWORD *)DeviceObject + 2);
  }
  KeReleaseQueuedSpinLock(0xAui64, v6);
}

Referenced by:

IoCreateDevice
IopCompleteUnloadOrDelete