現在、Windowsサービス(C++で書かれている)内に接続されたUSB HIDデバイスの通知を設定するコードがあります。コードは以下の通りである:すべてのUSBデバイスにRegisterDeviceNotification()を使用
GUID hidGuid;
HidD_GetHidGuid(&hidGuid);
DEV_BROADCAST_DEVICEINTERFACE NotificationFilter;
ZeroMemory(&NotificationFilter, sizeof(NotificationFilter));
NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
NotificationFilter.dbcc_classguid = hidGuid;
HDEVNOTIFY deviceNotify = RegisterDeviceNotification(StatusHandle, &NotificationFilter, DEVICE_NOTIFY_SERVICE_HANDLE);
次いでSERVICE_CONTROL_DEVICEEVENTイベントを介して受信された通知。 (これはサービスなので、WM_DEVICECHANGEはありません)。
私はRegisterDeviceNotification()呼び出しでDEV_BROADCAST_DEVICEINTERFACEフラグを指定するだけで、dbcc_classguidをオーバーライドしてすべてのデバイスを取得できると思っていましたが、そのフラグはWindows 2000ではサポートされていません。また、私はそれが単なるUSBデバイス以上のものを返すだろうと推測しています。
すべて USB HIDだけでなく、これを変更するにはどうすればよいですか?別のGUIDを指定するだけで簡単なはずですか?すべてのUSB用のGUIDですか?