Elizabeth Figura (@zfigura) commented about dlls/winebth.sys/winebth.c:
{DEVICE_CAPABILITIES *caps = stack->Parameters.DeviceCapabilities.Capabilities;caps->Removable = TRUE;caps->SurpriseRemovalOK = TRUE;caps->RawDeviceOK = TRUE;ret = STATUS_SUCCESS;break;}case IRP_MN_START_DEVICE:ret = STATUS_SUCCESS;break;case IRP_MN_REMOVE_DEVICE:{irp->IoStatus.Status = STATUS_SUCCESS;IoCompleteRequest( irp, IO_NO_INCREMENT );return STATUS_SUCCESS;
Why not fall through here? Also, no IoDeleteDevice()?