Вот по вашей теме нашлосьhttps://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerdevicenotificationwи пример использованияhttps://docs.microsoft.com/ru-ru/windows/win32/devio/registering-for-device-notification.

Т.е. вам нужно иметь winapi-Окно b зарегистрировать его, чтобы оно получало сообщения от системы о наступлении событий, в этом случае - какие-то события с усб. И будут прилетать эти сообщения в оконную процедуру.

Вы знаете, что такое оконная процедура, и как в целом ето работает? В ББ можно сделать такую процедуру, и получать любые уведомления от ОС.

********* ПРо Callback:
Вот например DialogBoxParamA, которая создает диалоговое окно из какого-то шаблона lpTemplateName, и прежде чем его показать вызывает функцию, адрес которой вы должны передать ей в параметре lpDialogFunc.
## Код:
```
INT_PTR DialogBoxParamA(
  HINSTANCE hInstance,
  LPCSTR    lpTemplateName,
  HWND      hWndParent,
  DLGPROC   lpDialogFunc,
  LPARAM    dwInitParam
);
```

lpDialogFunc - это указатель на функцию, или ее адрес. Вы должны написать эту функцию, потом вызвать DialogBoxParamA, передав ей адрес своей функции; и тогда в нужный момент Windows вызовет вашу функцию.