What does Windows error code 15321 (ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED) mean?

 
Previous Next
ERROR_HASH_NOT_PRESENT ERROR_GPIO_CLIENT_INFORMATION_INVALID

ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED

Secondary interrupt-controller provider is absent

ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED is Windows system result 15321 (0x00003BD9). The interrupt resource refers to a controller instance that the platform has not made available to the consumer.

This result is primarily an ordering and ownership result. The requested interrupt can exist in firmware data, but the secondary provider that translates or routes it has not registered.

Where this value belongs

  • A child device starts before its secondary interrupt controller.
  • Platform firmware describes an interrupt routed through a cascaded controller.
  • A provider driver fails during registration while consumers continue enumeration.

The investigation should connect the consumer resource to its provider instance. Reinstalling an unrelated GPIO client cannot repair a missing secondary interrupt-controller registration.

Common interpretation mistakes

  • It is mishandled when the interrupt number is analyzed without its controller or resource source.
  • It is mishandled when child start is retried before provider start failure is fixed.
  • It is mishandled when firmware topology and driver load order are not compared.
  • It is mishandled when the missing provider is mistaken for a masked GPIO pin.

Troubleshooting steps

  1. Capture the consumer device instance and raw interrupt resource.
  2. Identify the ACPI or platform node that owns the secondary controller.
  3. Verify the provider driver loaded and completed registration.
  4. Compare provider start time with child enumeration time.
  5. Inspect firmware tables and resource translation diagnostics.
  6. Restart enumeration only after the provider is known to be registered.

Useful evidence

  • Preserve consumer and provider device instance paths.
  • Preserve raw and translated interrupt resources.
  • Preserve provider driver load and registration events.
  • Preserve ACPI topology or firmware identifiers.
  • Preserve first provider-start failure status.

Retain the parent-child topology because a numeric interrupt alone cannot identify the missing routing provider.

Correct handling and recovery

Correct firmware description, provider driver installation, or start ordering so the secondary controller registers before its interrupt is consumed.

Re-enumeration is reasonable after provider registration succeeds. Repeated child starts while the provider remains absent only obscure the first failure.

Difference from nearby values

ERROR_GPIO_CLIENT_INFORMATION_INVALID concerns data supplied by a GPIO client driver. This code is about the missing provider instance that manages a particular interrupt.

Practical scenario

A child sensor is enumerated before a cascaded interrupt controller finishes starting. The sensor receives code 15321; a dependency fix starts the provider first and the same interrupt resource then translates successfully.

Implementation guidance

Platform drivers should publish dependencies explicitly and log provider instance IDs. Firmware and driver teams should validate cold boot, resume, and surprise-restart ordering.

For code 15321, record secondary_ic_consumer, secondary_ic_provider, secondary_ic_resource, secondary_ic_start_order, and secondary_ic_registration_status.

References


Looking for a different code? Search another status or error code.