| Previous | Next |
| ERROR_GPIO_OPERATION_DENIED | ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED |
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE
GPIO pin connection mode conflicts with existing use
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE is Windows system result 15326 (0x00003BDE). At least one requested pin is already connected in a mode that cannot coexist with the new request.
This result is an ownership and electrical-use conflict. Diagnosis requires an inventory of every current client, pin, sharing flag, direction, and interrupt connection.
Where this value belongs
- One driver requests GPIO output while another owns an interrupt connection.
- A shared input request conflicts with an existing exclusive connection.
- Resume code reconnects pins without first releasing the old mode.
The conflict is per pin and can involve only part of a requested group. Resetting the controller without coordinating clients can make the state less reliable.
Common interpretation mistakes
- It is mishandled when the entire controller is blamed without identifying the conflicting pins.
- It is mishandled when connect and disconnect callbacks are unbalanced.
- It is mishandled when sharing semantics are assumed rather than recorded.
- It is mishandled when resume performs a second connect for an already active client.
Troubleshooting steps
- List every requested pin and requested connect mode.
- Query or trace existing owners and modes for those pins.
- Find the first pin whose sharing rules reject coexistence.
- Verify disconnect completed before a mode change.
- Check start, stop, D-state, and resume paths for duplicate connects.
- Reproduce with one pin at a time to isolate the conflict.
Useful evidence
- Preserve requested pin set and mode.
- Preserve existing owner, mode, and sharing flags per pin.
- Preserve connect and disconnect callback order.
- Preserve power-state transition sequence.
- Preserve first conflicting pin and framework status.
It should be logged per pin because a group request can fail due to a single conflicting member.
Correct handling and recovery
Release the incompatible connection or redesign ownership so every client uses modes the controller and framework permit together.
Retry after the previous owner disconnects or the request mode changes. Polling without ownership coordination can create a start-order race.
Difference from nearby values
ERROR_GPIO_OPERATION_DENIED rejects an operation on one handle. Code 15326 rejects creation of a connection because another mode already occupies one or more pins.
Practical scenario
A button driver owns a pin as an interrupt while a board-control driver requests exclusive output on the same pin. Resource ownership tracing identifies the overlap and the firmware mapping is corrected.
Implementation guidance
Centralize pin assignments and validate them against firmware resources. Driver tests should cover cold boot, restart, sleep, and resume for balanced connections.
For code 15326, record gpio_conflict_pins, gpio_requested_mode, gpio_existing_modes, gpio_existing_owners, and gpio_connect_phase.
References
Looking for a different code? Search another status or error code.