PNRP 和 WSALookupServiceBegin
PNRP 會使用 WSALookupServiceBegin 函式來啟動可讓應用程式執行下列動作的程式:
嘗試執行其中一個函式的用戶端會使用 WSALookupServiceBegin、WSALookupServiceNext和 WSALookupServiceEnd 函式。
藉由使用 WSANSPIoctl,即可異步使用查閱服務。 如需異步使用查閱服務函式的相關信息,請參閱 PNRP 和 WSANSPIoctl。
使用對等名稱的程式與使用雲端的程式不同。 本主題會個別描述每個程式。
解析名稱
應用程式會使用 WSALookupServiceBegin,為在另一部計算機上註冊的對等服務取得 IP 位址、埠和通訊協定。 WSALookupServiceBegin 函式可用來啟動名稱解析程式,並設定參數和限制。 會傳回句柄,而且必須在呼叫 WSALookupServiceNext 和 WSANSPIoctl時使用 。
lpqsRestrictions
解析對等名稱時,LPWSAQUERYSET 結構,lpqsRestrictions 參數參考必須包含下列值:
-
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)。
-
lpszQueryString
-
保留的 必須 NULL。
-
dwNumberOfCsAddrs
-
保留的 必須是零 (0)。
-
lpcsaBuffer
-
保留的 必須 NULL。
-
dwOutputFlags
-
保留的 必須是零 (0)。
-
lpBlob
-
必須是 BLOB 結構的指標,或 NULL。 如果它是 NULL,則會使用預設值。 如果已設定,lpBlob 指向 PNRPINFO 結構,而且必須設定 PNRPINFO 結構中的特定參數。 如需詳細資訊,請參閱 PNRPINFO 結構的下列描述。
PNRPINFO 結構
如果已設定 LPWSAQUERYSET 結構的 lpBlob 成員,則必須設定 PNRPINFO 結構的下列成員:
-
dwSize
-
指定這個 結構的大小。
-
lpwszIdentity
-
保留的 必須 NULL。
-
nMaxResolve
-
指定要求的解析度數目。
-
dwTimeout
-
指定要等候回應的要求逾時期間。 預設值為30秒。 最大值為 600 秒(10 分鐘)。
-
dwLifetime
-
保留的 必須是零 (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)。
dwControlFlags
PNRP 支援下列LUP_RETURN_* 旗標:
價值 | 描述 |
---|---|
LUP_RETURN_NAME | 傳回名稱和內容。 |
LUP_RETURN_COMMENT | 傳回與名稱相關聯的批注。 |
LUP_RETURN_ADDR | 傳回與名稱相關聯的位址。 |
列舉網路雲端
lpqsRestrictions
列舉雲端時,LPWSAQUERYSET 結構,lpqsRestrictions 參數參考必須包含下列值:
-
dwSize
-
指定這個 結構的大小。
-
lpszServiceInstanceName
-
必須 NULL。
-
lpServiceClassID
-
必須是 SVCID_PNRPCLOUD。
-
lpVersion
-
保留的 必須 NULL。
-
lpszComment
-
保留的 必須 NULL。
-
dwNameSpace
-
必須是 NS_PNRPCLOUD。
-
lpNSProviderID
-
必須是 NS_PROVIDER_PNRPCLOUD 或 NULL。
-
lpszContext
-
保留的 必須 NULL。
-
dwNumberOfProtocols
-
保留的 必須是零 (0)。
-
lpszQueryString
-
保留的 必須 NULL。
-
dwNumberOfCsAddrs
-
保留的 必須是零 (0)。
-
lpcsaBuffer
-
保留的 必須 NULL。
-
dwOutputFlags
-
保留的 必須是零 (0)。
-
lpBlob
-
指向 PNRPCLOUDINFO 結構的 BLOB 結構的指標。 如果 lpBlobNULL,則會列舉所有雲端。
PNRPCLOUDINFO 結構
列舉雲端時,必須設定下列 PNRPCLOUDINFO 結構的成員:
-
dwSize
-
指定這個 結構的大小。
-
Cloud
-
指向 結構,指定可用來篩選搜尋結果的準則。 Cloud.Scope 成員可以是 PNRP_SCOPE_ANY、PNRP_GLOBAL_SCOPE、PNRP_SITE_LOCAL_SCOPE或 PNRP_LINK_LOCAL_SCOPE。 如果指定 PNRP_SCOPE_ANY,則會傳回所有雲端。 否則,只會傳回符合 Cloud.Scope 的雲端。
-
enCloudState
-
保留的 必須是零 (0)。
dwControlFlags
PNRP 支援下列LUP_RETURN_* 旗標:
價值 | 描述 |
---|---|
LUP_RETURN_NAME | 傳回名稱和內容。 |
LUP_RETURN_BLOB | 傳回與此雲端相關聯的 BLOB。 |
相關主題