What does NTSTATUS 0xC0000273 (STATUS_NO_MORE_MATCHES) mean?

 
Previous Next
STATUS_NO_MATCH STATUS_NOT_A_REPARSE_POINT

STATUS_NO_MORE_MATCHES

Enumeration exhaustion is different from failure to find a requested key

STATUS_NO_MORE_MATCHES marks the terminal condition of a current index enumeration: there are no more matching entries to return. It should not automatically be logged as a failed point lookup. STATUS_NO_MATCH is the corresponding key-oriented result in the published NTSTATUS table and says that a specified key had no match; this code explicitly refers to enumeration state.

The exact index implementation is producer-specific and is not identified by the status alone. Microsoft's generic-table routines provide a useful model for the distinction without claiming to be the producer: lookup searches for supplied data, whereas enumeration maintains traversal state and returns the next element until exhaustion. Real producers may additionally maintain a cursor, restart key, generation number, match predicate, or snapshot of the index.

For an unexpected occurrence, record how enumeration was started, the current cursor/restart state, filter predicate, index generation, and number of entries already returned. Check whether concurrent modification invalidated or advanced the cursor according to the producer's rules. If the caller expects multiple matches, verify that it does not restart with the wrong key or accidentally share enumeration state between threads. Conversely, expected exhaustion should terminate the loop normally rather than trigger retries that restart the same enumeration forever.

What to inspect

  • Record enumeration start/restart state, current cursor, and entries already returned.
  • Check producer rules for concurrent modification and index-generation changes.
  • Treat expected exhaustion as loop termination instead of immediately restarting the same scan.

References


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