共用方式為


描述項配置

雖然鼓勵 Windows Sockets 服務提供者將通訊端實作為可安裝的檔案系統, (IFS) 物件,Winsock 架構也會容納通訊端控制碼不是 IFS 物件的服務提供者。 具有 IFS 控制碼的提供者會透過 WSAPROTOCOL_INFO結構中的 XP1_IFS_HANDLES屬性位來指出。 (附注:XP1_IFS_HANDLES屬性位未包含在 API 規格 2.0.8 版中,但已透過 errata 機制新增。) Winsock SPI 用戶端可能會利用通訊端描述元是 IFS 控制碼的提供者,方法是使用這些描述元搭配標準 Windows I/O 功能,例如 ReadFileWriteFile

每當 IFS 提供者建立新的通訊端描述元時,提供者必須在提供新控制碼給 Windows Sockets SPI 用戶端之前呼叫 WPUModifyIFSHandle 。 此函式會接受提供者識別碼和提供者的建議 IFS 控制碼做為輸入,並傳回可能) 修改控制碼的 (。 IFS 提供者必須只提供修改的控制碼給其用戶端,而來自用戶端的所有要求只會參考這個修改的控制碼。 根據所考慮的作業系統,修改的控制碼保證與建議的控制碼不區分。 因此,在大部分情況下,服務提供者只會選擇只在其所有內部處理中使用已修改的控制碼。 此修改函式的目的是允許Ws2_32.dll大幅簡化識別與指定通訊端相關聯之服務提供者的程式。

未傳回 IFS 控制碼的提供者必須透過 WPUCreateSocketHandle 呼叫,從Ws2_32.dll取得有效的控制碼。 nonIFS 提供者只能提供 Windows Sockets 2.DLL提供給其用戶端的控制碼,而來自用戶端的所有要求只會參考這些控制碼。 為了方便服務提供者實作者, WPUCreateSocketHandle 中提供者所提供的其中一個輸入參數是 DWORD 內容值。 Ws2_32.dll會將此內容值與配置的通訊端控制碼產生關聯,並允許服務提供者透過 WPUQuerySocketHandleCoNtext 呼叫隨時擷取內容值。 此內容值的一般用法是儲存用來儲存通訊端狀態資訊的服務提供者維護資料結構的指標。