DEV_BROADCAST_DEVICEINTERFACE

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

DEV_BROADCAST_DEVICEINTERFACE_W (dbt.h) - Win32 apps | Microsoft Learn

RegisterDeviceNotificationで、DEV_BROADCAST_DEVICEINTERFACE構造体を渡してるので、DBT_DEVICEARRIVALや、DBT_DEVICEREMOVECOMPLETEが2回ずつ呼ばれているうちの1回は、DBT_DEVTYP_DEVICEINTERFACEであり、DEV_BROADCAST_DEVICEINTERFACEを取り出すことが出来る。
D_B_D.cppで、

これはDBT_DEVICEARRIVALのほう。

これはDBT_DEVICEREMOVECOMPLETEのほう。
挿した時、

こうなる。
こうなる。

こうなる。
取り出し時は、

こうなる。
こうなる。

こうなる。
dbcc_nameでどのUSBかがわかる。
まあ、デバイスIDではなくて、デバイスパスのようだが。

Sample/winapi/DEV_BROADCAST_DEVICEINTERFACE/D_B_D/src/D_B_D at master · bg1bgst333/Sample · GitHub