PNRP 和 WSALookupServiceNext
PNRP 會使用 WSALookupServiceNext 函式來比對先前呼叫 WSALookupServiceBegin中指定的查詢。 WSALookupServiceNext 函式的結果取決於在初始 WSALookupServiceBegin 函數調用中傳遞 WSAQUERYSET 結構中的設定。 此函式可用來執行下列兩個函式:
- 將對等名稱解析為地址清單
- 列舉網路雲端
藉由使用 WSANSPIoctl,即可異步使用查閱服務。 如需異步使用查閱服務函式的相關信息,請參閱 PNRP 和 WSANSPIoctl。
即使呼叫 WSANSPIoctl,WSALookupServiceNext 函式仍會封鎖。 呼叫 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
-
如果指定 LUP_RETURN_ADDR、LUP_RETURN_ALL或 NULL,則傳回CSADDR_INFO陣列中的項目數。 這個值和 lpcsaBuffer 中 中的資訊是這個結構中傳回的資訊索引鍵位。
-
lpcsaBuffer
-
如果指定 LUP_RETURN_ADDR、LUP_RETURN_ALL或 NULL,則傳回CSADDR_INFO結構的陣列指標。 這個緩衝區和 dwNumberOfCsAddrs 中的值 是這個結構中傳迴的主要資訊位。
-
dwOutputFlags
-
傳回零 (0)。
-
lpBlob
-
傳回 NULL 。
列舉網路雲端
列舉雲端時,lpqsResults 參數中傳回的 LPWSAQUERYSET 結構包含下列值:
-
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
-
傳回指向 PNRPCLOUDINFO 結構的 BLOB 結構的指標,如果指定了 LUP_RETURN_BLOB、LUP_RETURN_ALL或 NULL。
PNRPCLOUDINFO 結構
列舉雲端名稱時,會在 PNRPCLOUDINFO 結構中傳回下列值:
-
dwSize
-
這個結構的大小。
-
Cloud
-
實際的雲端值。
-
enCloudState
-
雲端的目前狀態。 PNRP_CLOUD_STATE 指定有效值。
-
enCloudFlags
-
表示雲端名稱在網路上有效,或只在目前計算機上有效。 PNRP_CLOUD_FLAGS 指定有效值。 某些雲端名稱在相同網路上的任何計算機上都有效。 其他雲端名稱只在目前計算機上有效,而且可能只有一段時間才有效。
- 如果 enCloudFlags 設定為 PNRP_CLOUD_NAME_LOCAL, 名稱只在本機有效。
- 如果未設定 enCloudFlags,則可以將雲端名稱傳輸到其他電腦。
相關主題