IopInsertRemoveDevice

VOID __stdcall IopInsertRemoveDevice(_DRIVER_OBJECT *DriverObject, _DEVICE_OBJECT *DeviceObject, UINT8 Insert){
  UINT8 v6; 
  _DEVICE_OBJECT **i; 

  v6 = KeAcquireQueuedSpinLock(10i64, (INT64)DeviceObject, Insert);
  if( Insert )
  {
    DeviceObject->NextDevice = DriverObject->DeviceObject;
    DriverObject->DeviceObject = DeviceObject;
  }
  else
  {
    for( i = &DeviceObject->DriverObject->DeviceObject; *i != DeviceObject; i = &(*i)->NextDevice )
      ;
    *i = DeviceObject->NextDevice;
  }
  KeReleaseQueuedSpinLock(LockQueueIoDatabaseLock, v6);
}

Referenced by:

IoCreateDevice
IopCompleteUnloadOrDelete