Detektere når en USB stick fjernes
Som titlen indikerer, mangler jeg noget kode til at detektere når en USB stick fjernes.Helt konkret har jeg en liste med alle USB stick drevbogstaver, og denne skal opdateres når en stick fjernes.
Jeg opfanger at de indsættes, ved at tjekke for beskeden WM_DEVICECHANGE.
Når den kommer tjekker jeg om wparam er DBT_DEVICEARRIVAL, og hvis den er - om dens struct's devicetype er DBT_DEVTYP_VOLUME.
Ud fra dette kan jeg få unitmask og derved finde drevbogstavet.
MEN hvordan opfanger jeg at den fjernes ? Enten hvor brugeren bare hiver den ud, eller laver en "sikker fjernelse af hardware" ?
Jeg har prøvet at tjekke for DBT_DEVICEREMOVEPENDING, men den fik mit program vidst aldrig, så jeg formoder den enten ikke broadcastes, eller slet ikke sendes.
Jeg vil helst undgå WMI for så vidt det er muligt - er det ikke muligt må jeg naturligvis "nøjes" med det.