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