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。
如果函式失敗,傳回值可能是下列其中一個傳回碼。
傳回碼 | 描述 |
---|---|
|
參數不正確。 如果 hClientHandle 為 Null 或無效或 pReserved 不是 Null,則會傳回此錯誤。 |
|
控制碼資料表中找不到控制碼 hClientHandle 。 |
|
從不支援的平臺呼叫此函式。 如果函式是從具有 SP3 的 Windows XP 或 Windows XP 搭配 SP2 用戶端的無線區域網路 API 呼叫,則會傳回此值。 |
|
各種錯誤碼。 |
備註
鄰近服務探索通訊協定是一種 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 個位元組。 |
[格式識別碼雜湊] 欄位描述 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 清單。 使用pPsdIEDataList和strFormat參數同時呼叫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 |