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.

ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED 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

  • ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED can be observed when a child device starts before its secondary interrupt controller.
  • ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED can be observed when platform firmware describes an interrupt routed through a cascaded controller.
  • ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED can be observed when 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

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

Diagnostic sequence

  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.

Evidence worth keeping

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

For ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED, 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.