DEV_BROADCAST_VOLUME

dbch_devicetypeが、DBT_DEVTYP_VOLUMEなら、DEV_BROADCAST_HDRポインタをDEV_BROADCAST_VOLUMEポインタにキャストできる。

DEV_BROADCAST_VOLUME (dbt.h) - Win32 apps | Microsoft Docs
USBメモリーの挿入などを検出する(UsefullCode.net)

今度は、DEV_BROADCAST_VOLUME構造体としての各要素を見てみる。
DEV_BROADCAST_VOLUME.cppで、

このように各要素をMessageBoxで表示。

これが来たら、OKを押す。
これが来たら、OKを押す。

これが来たら、OKを押す。

ここでさらに、OKを押す。
ここでさらに、OKを押す。

ここでさらに、OKを押す。

で、さらに各要素がわかる。
で、さらに各要素がわかる。

で、さらに各要素がわかる。
DBT_DEVTYP_VOLUMEということは、ボリュームを持つデバイスであり、USBメモリやUSBポータブルHDDなどのリムーバブルディスクはこれ。
実は、dbcv_unitmaskがドライブレターを表しており、例えば、一番下のビットが立っていたら'A'、下から2番目のビットが立っていたら'B'という感じになっている。
ここでは16になっているが、2進数で0x10000だから、'E'ドライブということになる。

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