| 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.
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE 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
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEcan be observed when one driver requests GPIO output while another owns an interrupt connection.ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEcan be observed when a shared input request conflicts with an existing exclusive connection.ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEcan be observed when 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
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEis mishandled when the entire controller is blamed without identifying the conflicting pins.ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEis mishandled when connect and disconnect callbacks are unbalanced.ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEis mishandled when sharing semantics are assumed rather than recorded.ERROR_GPIO_INCOMPATIBLE_CONNECT_MODEis mishandled when resume performs a second connect for an already active client.
Diagnostic sequence
- 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.
Evidence worth keeping
- For
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE, preserve requested pin set and mode. - For
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE, preserve existing owner, mode, and sharing flags per pin. - For
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE, preserve connect and disconnect callback order. - For
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE, preserve power-state transition sequence. - For
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE, preserve first conflicting pin and framework status.
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE 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
- Microsoft: System Error Codes 12000–15999 — official Microsoft documentation relevant to
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE. - Microsoft: GpioClx DDI — official Microsoft documentation relevant to
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE. - Microsoft: GPIO_CLIENT_CONNECT_IO_PINS — official Microsoft documentation relevant to
ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE.
Looking for a different code? Search another status or error code.