What does HRESULT 20499 (S_ADS_NOMORE_COLUMNS) mean?

 
Previous Next
S_ADS_NOMORE_ROWS STG_S_CONVERTED

S_ADS_NOMORE_COLUMNS

S_ADS_NOMORE_COLUMNS terminates column enumeration for the current search row. ADSI search results are row-oriented, while each row can expose a set of returned attributes through column APIs; reaching the end of one row does not mean the entire search is complete.

Keep row and column iteration states separate

  • When enumerating columns, reset column-processing state after moving to a new row.
  • If the application requested explicit attributes, compare the returned columns with that request instead of assuming every attribute has a value on every object.
  • Free every ADS_SEARCH_COLUMN obtained with GetColumn by calling FreeColumn before continuing.

A common bug is to use one terminal condition for both loops and accidentally stop after the first row. Microsoft describes separate row iteration and column retrieval contracts: rows advance with GetFirstRow/GetNextRow, while column data is represented by ADS_SEARCH_COLUMN. Log the current row identity and column name when debugging missing data; an absent column value is different from exhausting the columns available for that row.

IDirectorySearch result enumeration · Generic ADSI statuses


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