Ante todo gracias por el interés.
Los dispositivos que quiero detectar son usb, lo que quiero es que cada vez que conecte un dispositivo de almacenamiento por USB pueda obtener sus propiedades tales como capacidad, espacio libre, etc. todo desde un servicio de windows.
Código Delphi
[-]procedure TForm1.WMDevicechange(var Msg: TMessage); const
CD_METIDO = $8000;
CD_SACADO = $8004;
begin
inherited;
case Msg.WParam of
CD_METIDO:
begin
Conectado(True, True);
end;
CD_SACADO:
Desconectado;
end;
end;
esta es la forma en que lo hago en una app normal, pero no me funciona en un servicio.