В настоящее время я разрабатываю минидрайвер KMDF HID для Nintendo Wii Remote. Мой минидрайвер HID заменяет минидрайвер HidBth для драйвера HIDClass (я использую образец минидрайвера KMDF HID, где он фактически является драйвером фильтра и использует этот «kmdfhidminidriver» для пересылки всех запросов).
Итак, моя проблема заключается в том, что когда я выключаю пульт Wii Remote (нажимаю кнопку питания или извлекаю батарейки), PnP-Manager не распознает, что устройство исчезло. Windows по-прежнему показывает устройство в диспетчере устройств и думает, что все в порядке и работает. Единственный намек на то, что устройство исчезло, заключается в том, что канал L2CAP закрыт, и я получаю обратный вызов L2CAP, вызываемый с кодом индикатора "RemoteDisconnect".
Мой вопрос: как я могу сигнализировать PnP-Manager об отключении устройства? Я попытался использовать "WdfDeviceSetDeviceState" с параметром Removed", установленным на true. Но тогда Диспетчер устройств показывает ошибку драйвера (Код 24). Я хотел бы иметь решение, при котором устройство удаляется из диспетчера устройств без каких-либо ошибок, например, при отключении USB-устройства.
Дополнительная информация: я использую WDK 8 и WDF 1.11; Целевыми системами драйверов являются Win 7 и 8.