What does NTSTATUS 0xC000020B (STATUS_ADDRESS_CLOSED) mean?

 
Previous Next
STATUS_ADDRESS_ALREADY_EXISTS STATUS_CONNECTION_DISCONNECTED

STATUS_ADDRESS_CLOSED

Look for an address-lifetime race around asynchronous transport work

STATUS_ADDRESS_CLOSED is a lifecycle result. TDI used file objects to represent local addresses, connection endpoints, and control channels, with transport-maintained state attached to those objects. Once the address object is closed, later work that still depends on it cannot be treated as though the endpoint were merely idle or temporarily unreachable.

The common diagnostic question is which path ended the address lifetime and which request arrived afterward. Asynchronous receive, connect, disconnect, and cancellation paths can expose ordering bugs when one thread closes an address while another still holds a connection or queued operation that references it. Preserve request IDs and object identity through teardown; logging only the address string hides reuse and race conditions.

Retrying immediately with the same stale handle does not restore the object. A correct recovery path must either complete or cancel dependent work before close, or create and initialize a new address object according to the transport contract. In old TDI code, also inspect disassociation separately: a connection endpoint and its associated local address are related objects with their own state transitions.

What to inspect

  • The first close or teardown request for the address object and every outstanding operation at that time.
  • Object/handle identity rather than only the textual network address, so reuse cannot hide a stale reference.
  • Association and disassociation events for connection endpoints that still refer to the closed local address.

References


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