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