| Previous | Next |
| ERROR_WMI_UNRESOLVED_INSTANCE_REF | ERROR_WMI_GUID_DISCONNECTED |
ERROR_WMI_ALREADY_ENABLED
Enable and disable form a provider lifecycle
WMI can ask a driver to begin collecting an expensive data block or to begin sending an event notification. A well-behaved provider treats the transition as a state machine, not as a request to start another worker or allocate another copy of the same resource. This status indicates that the block was already enabled when an enable action was attempted again.
For collection marked expensive, WMI normally sends one enable when the first consumer requires the block and one disable after the last consumer releases it. A duplicate result should lead to an audit of provider-side reference accounting, direct IRP handling, and any custom dispatch path that bypasses the WMI library.
State to record
- Track the block GUID, provider device, current enable state, and the transition that changed it.
- Make enable idempotent at the resource boundary so a duplicate cannot create two timers, handles, or event subscriptions.
- Pair cleanup only with a successful state transition; an enable error must not cause a later disable to free an unrelated resource.
References
- Windows WDK: enabling collection for an expensive block
- Windows WDK: DpWmiFunctionControl
- Windows WDK: WMIREG_FLAG_EXPENSIVE and event blocks
Looking for a different code? Search another status or error code.