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


PNRP и WSALookupServiceNext

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

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

С помощью WSANSPIoctl службу поиска можно использовать асинхронно. Сведения об асинхронном использовании функций службы поиска см. в разделе 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

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

dwSize

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

Облако

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

enCloudState

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

enCloudFlags

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

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

PNRP и BLOB

PNRP и WSALookupServiceEnd

PNRP и WSANSPIoctl

PNRP и WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

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

WSALookupServiceBegin