PNRP 和 WSALookupServiceBegin
PNRP 會使用 WSALookupServiceBegin 函式來啟動可讓應用程式執行下列動作的程式:
嘗試執行其中一個函式的用戶端會使用 WSALookupServiceBegin、 WSALookupServiceNext和 WSALookupServiceEnd 函式。
藉由使用 WSANSPIoctl,可以非同步使用查閱服務。 如需非同步使用查閱服務函式的相關資訊,請參閱 PNRP 和 WSANSPIoctl。
使用對等名稱的程式與使用雲端的程式不同。 本主題會個別描述每個程式。
解析名稱
應用程式會使用 WSALookupServiceBegin 來取得在另一部電腦上註冊之對等服務的 IP 位址、埠和通訊協定。 WSALookupServiceBegin函式可用來啟動名稱解析程式,並設定參數和限制。 會傳回控制碼,而且必須在呼叫 WSALookupServiceNext 和 WSANSPIoctl時使用。
lpqsRestrictions
解析對等名稱時,lpqsRestrictions參數參考的LPWSAQUERYSET結構必須包含下列值:
-
dwSize
-
指定這個 結構的大小。
-
lpszServiceInstanceName
-
指定要解析的對等名稱。
-
lpServiceClassID
-
必須是 SVCID_PNRPNAME。
-
lpVersion
-
保留的 必須是 Null。
-
lpszComment
-
保留的 必須是 Null。
-
dwNameSpace
-
必須是 NS_PNRPNAME 或 NS_ALL。
-
lpNSProviderID
-
必須是 NS_PROVIDER_PNRPNAME 或 Null。
-
lpszCoNtext
-
必須是雲端名稱、空字串或 Null。 如果此值為 Null 或空字串,則會使用預設雲端 「Global_」。 否則,它必須指向有效的雲端名稱。
-
dwNumberOfProtocols
-
保留的 必須是 0 (0) 。
-
lpszQueryString
-
保留的 必須是 Null。
-
dwNumberOfCsAddrs
-
保留的 必須是 0 (0) 。
-
lpcsaBuffer
-
保留的 必須是 Null。
-
dwOutputFlags
-
保留的 必須是 0 (0) 。
-
lpBlob
-
必須是 BLOB 結構的指標或 Null。 如果是 Null,則會使用預設值。 如果已設定, lpBlob 會指向 PNRPINFO 結構,而且必須設定 PNRPINFO 結構中的特定參數。 如需詳細資訊,請參閱 PNRPINFO 結構的下列描述。
PNRPINFO 結構
如果已設定LPWSAQUERYSET結構的lpBlob成員,則必須設定下列 PNRPINFO結構的成員:
-
dwSize
-
指定這個 結構的大小。
-
lpwszIdentity
-
保留的 必須是 Null。
-
nMaxResolve
-
指定要求的解析度數目。
-
dwTimeout
-
指定要等候回應的要求逾時期間。 預設值為 30 秒。 最大值為 600 秒, (10 分鐘) 。
-
dwLifetime
-
保留的 必須是 0 (0) 。
-
enResolveCriteria
-
必須是其中一個允許的值。 預設值 為 PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME。 有效值是由 PNRP_RESOLVE_CRITERIA所指定。
-
dwFlags
-
必須是零 (0) 或 PNRPINFO_HINT。 預設為零 (0)。
-
saHint
-
指定提示的 IP 位址。 嘗試尋找最接近的對等名稱時,會使用提示。 提示的格式是 IPv6 位址。 如果在尋找最接近的對等名稱時未指定 saHint ,則會改用本機電腦的 IPv6 位址。 如果未設定 dwFlags, 則會忽略此成員。
-
enNameState
-
保留的 必須是 0 (0) 。
dwControlFlags
PNRP 支援下列LUP_RETURN_* 旗標:
值 | Description |
---|---|
LUP_RETURN_NAME | 傳回名稱和內容。 |
LUP_RETURN_COMMENT | 傳回與名稱相關聯的批註。 |
LUP_RETURN_ADDR | 傳回與名稱相關聯的位址。 |
列舉網路雲端
lpqsRestrictions
列舉雲端時,lpqsRestrictions參數參考的LPWSAQUERYSET結構必須包含下列值:
-
dwSize
-
指定這個 結構的大小。
-
lpszServiceInstanceName
-
必須是 Null。
-
lpServiceClassID
-
必須是 SVCID_PNRPCLOUD。
-
lpVersion
-
保留的 必須是 Null。
-
lpszComment
-
保留的 必須是 Null。
-
dwNameSpace
-
必須是 NS_PNRPCLOUD。
-
lpNSProviderID
-
必須是 NS_PROVIDER_PNRPCLOUD 或 Null。
-
lpszCoNtext
-
保留的 必須是 Null。
-
dwNumberOfProtocols
-
保留的 必須是 0 (0) 。
-
lpszQueryString
-
保留的 必須是 Null。
-
dwNumberOfCsAddrs
-
保留的 必須是 0 (0) 。
-
lpcsaBuffer
-
保留的 必須是 Null。
-
dwOutputFlags
-
保留的 必須是 0 (0) 。
-
lpBlob
-
指向PNRPCLOUDINFO結構的BLOB結構的指標。 如果 lpBlob 為 Null,則會列舉所有雲端。
PNRPCLOUDINFO 結構
列舉雲端時,必須設定 下列 PNRPCLOUDINFO 結構成員:
-
dwSize
-
指定這個 結構的大小。
-
雲
-
指向 結構,指定可用來篩選搜尋結果的準則。 Cloud.Scope成員可以PNRP_SCOPE_ANY、PNRP_GLOBAL_SCOPE、PNRP_SITE_LOCAL_SCOPE或PNRP_LINK_LOCAL_SCOPE。 如果指定 PNRP_SCOPE_ANY ,則會傳回所有雲端。 否則,只會傳回符合 Cloud.Scope 的雲端。
-
enCloudState
-
保留的 必須是 0 (0) 。
dwControlFlags
PNRP 支援下列LUP_RETURN_* 旗標:
值 | Description |
---|---|
LUP_RETURN_NAME | 傳回名稱和內容。 |
LUP_RETURN_BLOB | 傳回與此雲端相關聯的 BLOB 。 |
相關主題