Поделиться через


PNRP и WSALookupServiceNext

PNRP использует функцию WSALookupServiceNext для сопоставления запросов, указанных в предыдущем вызове WSALookupServiceBegin. Результаты функции WSALookupServiceNex t определяются параметрами в структуре WSAQUERYSET, переданной в первоначальном вызове функции WSALookupServiceBe gin. Эта функция используется для выполнения следующих двух функций:

  • Разрешение имени однорангового узла в списке адресов
  • Перечисление сетевых облаков

Используя WSANIoctl, службу подстановки можно использовать асинхронно. Сведения об использовании функций службы подстановки асинхронно см. в PNRP и WSANSPIoctl.

Блоки функций WSALookupServiceNext , даже если вызывается WSANSPIoctl. Перед вызовом WSALookupServiceNextприложение должно ждать, пока он не получит уведомление, если блокировка возникает.

Разрешение имени однорангового узла в списке адресов

При разрешении однорангового имени в списке адресов структура LPWSAQUERYSET, возвращенная в параметре lpqsResults, содержит следующие значения:

dwSize

Возвращает размер структуры.

lpszServiceInstanceName

Возвращает имя однорангового узла, если указаны LUP_RETURN_NAME, LUP_RETURN_ALLили NULL.

lpServiceClassID

Возвращает SVCID_PNRPNAME.

lpVersion

Возвращает NULL.

lpszComment

Возвращает комментарий, если указаны LUP_RETURN_COMMENT, LUP_RETURN_ALLили NULL.

dwNameSpace

Возвращает NS_PNRPNAME.

lpNSProviderID

Возвращает NS_PROVIDER_PNRPNAME.

lpszContext

Возвращает имя облака, если указаны LUP_RETURN_NAME, LUP_RETURN_ALLили NULL.

dwNumberOfProtocols

Возвращает ноль (0).

lpszQueryString

Возвращает NULL.

dwNumberOfCsAddrs

Возвращает количество записей в массиве CSADDR_INFO, если указаны LUP_RETURN_ADDR, LUP_RETURN_ALLили NULL. Это значение и сведения в lpcsaBuffer являются ключевыми битами информации, возвращаемой в этой структуре.

lpcsaBuffer

Возвращает указатель на массив структур CSADDR_INFO, если указаны LUP_RETURN_ADDR, LUP_RETURN_ALLили NULL. Этот буфер и значение в dwNumberOfCsAddrs являются ключевыми битами информации, возвращаемыми в этой структуре.

dwOutputFlags

Возвращает ноль (0).

lpBlob

Возвращает NULL.

Перечисление сетевых облаков

При перечислении облаков структураLPWSAQUERYSET, возвращенная в параметре lpqsResults, содержит следующие значения:

dwSize

Возвращает размер структуры.

lpszServiceInstanceName

Возвращает облачное имя, если указаны LUP_RETURN_NAME, LUP_RETURN_ALLили NULL.

lpServiceClassID

Возвращает SVCID_PNRPCLOUD.

lpVersion

Возвращает NULL.

lpszComment

Возвращает NULL.

dwNameSpace

Возвращает NS_PNRPCLOUD.

lpNSProviderID

Возвращает NS_PROVIDER_PNRPCLOUD.

lpszContext

Возвращает NULL.

dwNumberOfProtocols

Возвращает ноль (0).

lpszQueryString

Возвращает NULL.

dwNumberOfCsAddrs

Возвращает ноль (0).

lpcsaBuffer

Возвращает NULL.

dwOutputFlags

Возвращает ноль (0).

lpBlob

Возвращает указатель на структуру BLOB, которая указывает на структуру PNRPCLOUDINFO , если заданы LUP_RETURN_BLOB, LUP_RETURN_ALLили NULL.

Структура PNRPCLOUDINFO

При перечислении имен облака в структуре PNRPCLOUD INFO возвращаются следующие значения:

dwSize

Размер этой структуры.

Cloud

Фактическое значение облака.

enCloudState

Текущее состояние облака. PNRP_CLOUD_STATE указывает допустимые значения.

enCloudFlags

Указывает, что имя облака допустимо в сети или допустимо только на текущем компьютере. PNRP_CLOUD_FLAGS указывает допустимые значения. Некоторые имена облаков допустимы на любом компьютере в одной сети. Другие имена облака действительны только на текущем компьютере и могут быть допустимыми только в течение определенного периода времени.

  • Если enCloudFlags задано значение PNRP_CLOUD_NAME_LOCAL, имя допустимо только локально.
  • Если enCloudFlags не задано, то имя облака можно передать на другие компьютеры.

PNRP и BLOB

PNRP и WSALookupServiceEnd

PNRP и WSANIoctl

PNRP и WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

коды ошибок NSP PNRP

WSALookupServiceBegin