SPDRP_SERVICE

SPDRP_SERVICEで、サービス名を取得。

SetupDiSetDeviceRegistryPropertyW 関数 (setupapi.h) - Win32 apps | Microsoft Learn
USBメモリの安全な取り外し: 相談天国

サービス名が"USBSTOR"なら、USBHDDでありUSBデバイスであると言える。
SPDRP_SERVICE.cppで、

"USBSTOR"かつDN_DISABLEABLEかつDN_REMOVABLEなら、USBデバイスなので最終的に取り出す。

まだある状態
まだある状態

まだある状態

取り出し成功
取り出し成功

取り出し成功

消えた
消えた

消えた

Sample/winapi/SPDRP_SERVICE/SPDRP_SERVICE/src/SPDRP_SERVICE at master · bg1bgst333/Sample · GitHub