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 не задан, имя облака можно передать на другие компьютеры.
Связанные темы