Я пишу драйвер ядра Windows, в котором мне нужно преобразовать IP-адреса в соответствующие имена хостов. На страницах Microsoft очень мало документации по этому поводу:
Разрешение имен хостов и IP-адресов
Как это может быть сделано? Какому порядку поиска следует Windows, когда мы разрешаем имена хостов из ядра?
Я хочу знать, проверяет ли сначала поиск из ядра файл hosts для данного IP-адреса. Это потому, что я не хочу, чтобы ядро выполняло запрос поиска в DNS.
Достаточно ли вызова WskGetNameInfo в ядре для получения результата или мне нужно настроить WskProviderNPI перед вызовом ядра?





The WskGetNameInfo function provides protocol-independent translation from a transport address to a host name.
Согласно документу WDK, он обеспечивает независимый от протокола перевод. Итак, похоже, что WskGetNameInfo предоставляет вам то, что вы хотите. Я сам не проверял эту часть, но вы можете проверить это с помощью простого теста, если хотите. Проверьте с помощью такого инструмента, как Wireshark, чтобы узнать, возникают ли DNS-запросы.
Я не думаю, что WskGetNameInfo когда-либо будет выполнять DNS-запросы. Если так, то это фигня.
WskGetNameInfo - это нужная вам функция. Это интерфейс, который может получить имя хоста по IP-адресу. По опубликованной вами ссылке уже есть ответ. Возможно, вы не спросили, что именно вам непонятно.