Win32_USBHub

Win32_USBHubクラスは、USBデバイスの列挙に使うクラスの一種。

Win32\_USBHub class | Microsoft Docs
WMI タスク: コンピューターハードウェア - Win32 apps | Microsoft Docs

ただ、「USBハブの管理特性を表す」らしく、これが挿している全てのUSBデバイスを列挙するわけではなさそう。
USBハブとして機能するものだけなのかな。
Win32_USBHub.cppで、

NameとCaptionに日本語が混じるので、コンソールだとややこしいので、ShiftJISに変換して出力。
Surface Proの場合、何も挿していない時は、

CoCreateInstance OK!
pLocator = 0x00790508
pLocator->ConnectServer OK!
pServices = 0x00790208
CoSetProxyBlanket OK!
pServices->ExecQuery OK!
pEnumerator = 0x007a83e0
pEnumerator->Next OK!
pClassObject = 0x007a86b0
pClassObject->Get OK!
Name: USB ルート ハブ (USB 3.0)
pClassObject->Get OK!
Caption: USB ルート ハブ (USB 3.0)

USB ルート ハブだけ。
挿しているものではなくて、PC自身のルートハブデバイス
手持ちのひとつ前のモデルのポータブルUSBHDDだと、

CoCreateInstance OK!
pLocator = 0x00750628
pLocator->ConnectServer OK!
pServices = 0x0074fcb8
CoSetProxyBlanket OK!
pServices->ExecQuery OK!
pEnumerator = 0x0075fa78
pEnumerator->Next OK!
pClassObject = 0x00767a28
pClassObject->Get OK!
Name: USB ルート ハブ (USB 3.0)
pClassObject->Get OK!
Caption: USB ルート ハブ (USB 3.0)
pEnumerator->Next OK!
pClassObject = 0x00767a28
pClassObject->Get OK!
Name: USB 大容量記憶装置
pClassObject->Get OK!
Caption: USB 大容量記憶装置

"USB 大容量記憶装置"という名前で、挿しているポータブルUSBHDDが追加された。
手持ちの最新のモデルのポータブルUSBHDDだと、

CoCreateInstance OK!
pLocator = 0x007c0618
pLocator->ConnectServer OK!
pServices = 0x007c0208
CoSetProxyBlanket OK!
pServices->ExecQuery OK!
pEnumerator = 0x007d7450
pEnumerator->Next OK!
pClassObject = 0x007d8818
pClassObject->Get OK!
Name: USB ルート ハブ (USB 3.0)
pClassObject->Get OK!
Caption: USB ルート ハブ (USB 3.0)

出てこない。
昔の違うタイプのポータブルUSBHDDでも、

CoCreateInstance OK!
pLocator = 0x004f1fb8
pLocator->ConnectServer OK!
pServices = 0x004f13b0
CoSetProxyBlanket OK!
pServices->ExecQuery OK!
pEnumerator = 0x004f6030
pEnumerator->Next OK!
pClassObject = 0x0050eca0
pClassObject->Get OK!
Name: USB ルート ハブ (USB 3.0)
pClassObject->Get OK!
Caption: USB ルート ハブ (USB 3.0)

出てこない。
この結果から、挿しているUSBデバイスの列挙にWin32_USBHubを使うのは好ましくないようだ。

Sample/wmi/Win32_USBHub/Win32_USBHub/src/Win32_USBHub at master · bg1bgst333/Sample · GitHub