Возвращает только один! От MSDN (выделено мое):
SIO_ROUTING_INTERFACE_QUERY (настройка кода операции: I, O, T == 1)
Чтобы получить адрес локального интерфейса (представленного в виде структуры sockaddr), который следует использовать для отправки на удаленный адрес, указанный во входном буфере ...
Это правда, что может существовать несколько маршрутов к адресу назначения, и в этом случае он, без сомнения, выберет самый дешевый (каждая из записей таблицы маршрутизации содержит стоимость или метрика, см. здесь ).
Или вы имели в виду SIO_ADDRESS_LIST_QUERY
?, и в этом случае Windows прекрасно знает, какие сетевые интерфейсы установлены на вашем компьютере, и порядок их возврата в высшей степени не важен.