共用方式為


WlanSetPsdIEDataList 函式 (wlanapi.h)

WlanSetPsdIeDataList函式會 (PSD) 資訊元素設定鄰近服務探索, (IE) 資料清單。

語法

DWORD WlanSetPsdIEDataList(
  [in] HANDLE                    hClientHandle,
  [in] LPCWSTR                   strFormat,
  [in] const PWLAN_RAW_DATA_LIST pPsdIEDataList,
       PVOID                     pReserved
);

參數

[in] hClientHandle

用戶端的會話控制碼,由先前呼叫 WlanOpenHandle 函式取得。

[in] strFormat

pPsdIEDataList 參數中傳遞之 PSD IE 資料清單中的 PSD IE 格式。 這是 Null 終止的 URI 字串,指定用於探索的通訊協定命名空間。

[in] pPsdIEDataList

要設定之 PSD IE 資料清單 之WLAN_RAW_DATA_LIST 結構的指標。

pReserved

保留供未來使用。 必須設定為 Null

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值可能是下列其中一個傳回碼。

傳回碼 描述
ERROR_INVALID_PARAMETER
參數不正確。 如果 hClientHandleNull 或無效或 pReserved 不是 Null,則會傳回此錯誤。
ERROR_INVALID_HANDLE
控制碼資料表中找不到控制碼 hClientHandle
ERROR_NOT_SUPPORTED
從不支援的平臺呼叫此函式。 如果函式是從具有 SP3 的 Windows XP 或 Windows XP 搭配 SP2 用戶端的無線區域網路 API 呼叫,則會傳回此值。
RPC_STATUS
各種錯誤碼。

備註

鄰近服務探索通訊協定是一種 Microsoft 專屬通訊協定,可讓用戶端在其實體鄰近性中探索服務,這是由無線電範圍所定義。 鄰近服務探索通訊協定的目的是要傳達服務探索資訊,例如服務公告,做為指標框架的一部分。 存取點 (AP) 和月臺 (STA) ,以特定模式定期廣播指標畫面。 指標框架可以包含單一或多個專屬資訊元素,其中包含裝置所提供的服務相關探索資訊。

PSD IE 可用來傳輸較高層級探索通訊協定所提供的壓縮資訊,以便進行被動探索。 用於探索的這類較高層級通訊協定之一是 WS-Discovery 通訊協定。 任何通訊協定都可以用於探索。

已安裝無線區域網路 服務的 Windows Vista 和 Windows Server 2008 支援臨機操作用戶端、臨機操作服務和基礎結構用戶端的被動探索。 這表示臨機操作服務可以在一或多個指標中傳輸 PSD IE 來公告可用的資源或服務。 不保證此指標是由臨機操作或基礎結構用戶端接收。

Windows 7 和 Windows Server 2008 R2 與無線區域網路 服務一起安裝支援臨機操作用戶端、臨機操作服務和基礎結構用戶端的被動探索,方式與 Windows Vista 相同。 此外,無線託管網路也支援 PSD IE,這是軟體型無線存取點 (AP) 。 要執行無線託管網路之本機電腦上的應用程式,可能會使用 WlanSetPsdIeDataList 函式來設定 PSD IE,再啟動無線託管網路。 設定之後,PSD IE 將會包含在無線託管網路啟動後的指標和探查回應中。

每個傳送或接收指標的應用程式都會維護自己的 PSD IE 資料清單。 pPsdIEDataList參數指向應用程式所產生的 PSD IDE 清單。 每個 PSD IE 都有下列格式。

欄位 描述和值
元素識別碼 (1 個位元組) 221
長度 (1 個位元組) [資料] 欄位的長度,以位元組為單位加上 8。
OUI (3 個位元組) 組織唯一識別碼 (OUI) 必須包含 00-50-F2 的值。 此公用 OUI 已向 Microsoft 註冊。
OUI 類型 (1 個位元組) 針對鄰近服務探索通訊協定,OUI 類型必須包含 6 的值。
) 格式化識別碼雜湊 (4 個位元組 strFormat 參數計算的 HMAC 31-0 位。
資料 (變數) 包含用於探索的使用者定義資料。 此欄位長度不能超過 240 個位元組。
 

元素識別碼 221 指定 IEEE 802.11 標準中定義的 Vendor-Specific 資訊元素。 組織唯一識別碼 (OUI) 包含廠商的 3 位元組 IEEE 指派 OUI,其定義資訊元素內容的順序與 OUI 在 IEEE 802.11 位址欄位中傳輸的順序相同。 [元素識別碼]、[長度]、[OUI] 和 [OUI 類型] 欄位是由自動組態服務所控制,而應用程式則控制其餘欄位。

[格式識別碼雜湊] 欄位描述 PSD IE 中攜帶的資訊格式。 為了確保在規避格式識別碼的管理中心需求時,會使用 RFC 3986中所指定的統一資源識別項 (URI) 格式字串來區分格式。 不過,由於傳輸必須有效率,而且資訊元素中的空間受到限制,所以不會實際傳輸字串,而是會傳輸其雜湊。 在用戶端上,這是指標的接收端,雜湊會比對一組已知的格式識別碼。

[格式識別碼雜湊] 欄位是以位 0 表示...31 個雜湊型訊息驗證碼 (HMAC) strFormat 參數中指定的格式識別碼字串。 HMAC 可用來指定 PSD IE 的 [資料] 欄位格式。 用來計算 HMAC 的公式會在 RFC 2104中說明。 HMAC 計算的範例程式碼如 RFC 4634中所指定。 計算 HMAC 時,請使用 SHA-256 作為雜湊函式。 使用的金鑰是「null」 金鑰 (驗證金鑰的 Null 指標,以及 RFC 4634) 中每個原始程式碼的零長度驗證金鑰。 使用 strFormat 參數的值 (包括任何空格,但不包括 Null 終止字元,) 以小端格式編碼為 Unicode UTF-16 的輸入文字。

例如,如果 strFormat 參數是 http://schemas.xmlsoaps.org/ws/2004/10/discovery ,則對應 HMAC 的前四個八位是 0xF8 0xCB 0x35 0x15

如果 strFormat 參數為 http://schemas.microsoft.com/networking/discoveryformat/v2 ,則對應 HMAC 的四個八位是 0xCF 0xF1 0x64 0x17

透過網路傳送 HMAC 的前 4 個八位時,請先傳送第一個 (最左邊) 八位。

請注意,截斷 HMAC 中可能會發生衝突,這表示不可能從 HMAC 的指定位,唯一判斷對應至 PSD IE 承載的探索通訊協定。 接收 PSD IE 的應用程式必須充分猜測來自指定 HMAC 的探索通訊協定,然後在建立連線之後重新執行較高層級的探索通訊協定。

最多可以傳入清單中的五個 PSD IDE。 此外,PSD IE 清單的總長度,以位元組為單位,可能會受限於指標長度的硬體限制。

應用程式可以多次呼叫 WlanSetPsdIeDataList 。 使用相同的strFormat呼叫WlanSetPsdIeDataList兩次時,第一個函式呼叫所填入WLAN_RAW_DATA_LIST的內容會由第二個呼叫的WLAN_RAW_DATA_LIST承載覆寫。 當 WlanSetPsdIeDataList 被呼叫, 並將 pPsdIEDataList 參數設定為 Null時,會清除與 strFormat 相關聯的 PSD IE 清單。 使用pPsdIEDataListstrFormat參數同時呼叫WlanSetPsdIeDataList時,會清除應用程式所設定的所有 PSD IE 清單。

無線服務會處理由不同應用程式設定的 PSD IE 資料清單,並產生原始的 IE 資料 Blob。 當電腦在任何無線介面卡上建立或聯結臨機操作網路時,它會將與網路相關聯的 PSD IE 資料 Blob 傳送指標傳送給其他電腦。

月臺可以在從電腦收到指標之後呼叫 WlanExtractPsdIEDataList 函式,以取得 PSD IE 資料清單。

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wlanapi.h (包含 Wlanapi.h)
程式庫 Wlanapi.lib
Dll Wlanapi.dll

另請參閱

關於無線託管網路

WLAN_RAW_DATA_LIST

WlanExtractPsdIEDataList

WlanScan