DBT_DEVICEREMOVECOMPLETE

バイスの削除が完了した時、DBT_DEVICEREMOVECOMPLETEが発生する。

DBT_DEVICEREMOVECOMPLETE event (Dbt.h) - Win32 apps | Microsoft Docs

DBT_DEVICEREMOVECOMPLETE.cppで、

とする。
USBデバイスを接続すると、

"DBT_DEVICEARRIVAL"が発生するが、
"DBT_DEVICEARRIVAL"が発生するが、

"DBT_DEVICEARRIVAL"が発生するが、
USBデバイスを抜くと、

"DBT_DEVICEREMOVECOMPLETE"が発生する。
"DBT_DEVICEREMOVECOMPLETE"が発生する。

"DBT_DEVICEREMOVECOMPLETE"が発生する。
タスクトレイからUSBデバイスの取り出しでも発生する。
で、その後に手動でUSBデバイスを抜いた時は"DBT_DEVNODES_CHANGED"だけ発生する。
だから、論理的な取り外しは"DBT_DEVICEREMOVECOMPLETE"であり、物理的な取り外しはまた違うんだなあ。
この辺の詳細はどうすれば取れるんだろ。取れるんかな。

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