| Previous | Next |
| STATUS_LPC_REQUESTS_NOT_ALLOWED | STATUS_HARDWARE_MEMORY_ERROR |
STATUS_RESOURCE_IN_USE
Find the current owner and lifecycle state before deciding whether to wait or fail
STATUS_RESOURCE_IN_USE indicates a resource is already occupied by another use that conflicts with the current request. The word “resource” is intentionally generic: only the returning interface can identify whether it is a hardware mapping, registration slot, object state, session, or another exclusive facility. The correct diagnostic starts with ownership.
Windows driver interfaces commonly make resource lifetime explicit. PnP query-remove processing can fail while handles remain open on a device, and callback registration APIs require corresponding unregister operations before driver unload. Those are examples of why an “in use” condition should be correlated with open references and lifecycle operations rather than treated as a transient lock contention event.
Log the resource identifier, current owner or registration handle, acquisition stack when available, reference count, and the operation that is trying to acquire it. If waiting is supported, use the synchronization or notification mechanism defined by the interface; polling an exclusive resource in a tight loop can create starvation. If the owner belongs to an earlier object generation, investigate a leaked reference or missed unregister/close path. Do not forcibly tear down a live kernel resource unless the owning subsystem explicitly supports that operation.
What to inspect
- Identify the resource and its current owner, handle, reference, or registration record.
- Check teardown and error paths for a missing close, dereference, unmap, or unregister.
- Use provider notifications or synchronization for waitable resources instead of blind polling.
References
- Microsoft: Handling a GUID_TARGET_DEVICE_QUERY_REMOVE event
- Microsoft: ObRegisterCallbacks
- Microsoft: Using a driver-defined callback object
- Microsoft: Object management
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.
