Мне нужно получить текущее состояние питания устройства. Я смог получить его, используя приведенный ниже код:
ULONG ulRegDataType;
CM_POWER_DATA powerData;
ULONG ulLength;
auto ret = CM_Get_DevNode_Registry_PropertyW(devInst, CM_DRP_DEVICE_POWER_DATA, &ulRegDataType, &powerData, &ulLength, 0);
Однако я не смог установить обратный вызов уведомления с помощью CM_Register_Notification
, который уведомил бы меня об изменении свойства. Я пробовал и CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES
, и CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES
, но обратный вызов никогда не вызывается, когда устройство переходит в состояние D3.