適用于 SAN 的 Windows Sockets SPI 延伸模組
本節提供 SAN 服務提供者 DLL 必須提供的 SAN 擴充功能簡短描述。 這些函式會擴充 Windows Sockets SPI 以搭配 SAN 使用。 擴充函式定義于 Ws2san.h 中,並完整記載于 Windows Sockets 直接參考 一節中。
除了 WSPStartupEx 函式之外,本節所列的擴充函式是由 Windows Sockets 參數擷取。 為了擷取每個擴充函式的進入點,Windows Sockets 參數會呼叫 SAN 服務提供者的 WSPIoctl 函式,並傳遞SIO_GET_EXTENSION_FUNCTION_POINTER命令程式碼,以及其值可識別其中一個擴充函式的 GUID。
SAN 服務提供者必須實作下列所有擴充功能,但 WSPRdmaRead 和 WSPMemoryRegistrationCacheCallback 函式除外。 如果 SAN 服務提供者不支援WSPRdmaRead或WSPMemoryRegistrationCacheCallback擴充功能函式,當 Windows Sockets 參數要求進入點至WSPRdmaRead或WSPMemoryRegistrationCacheCallback時,其WSPIoctl函式必須傳回 WSAEOPNOTSUPP 錯誤。
WSPStartupEx
起始 Windows Sockets 交換器的 SAN 服務提供者使用。
WSPRegisterMemory
註冊通訊端作為資料傳輸作業之本機來源或本機目標的緩衝區陣列。 這類通訊端可以使用這個緩衝區陣列作為 WSPRdmaWrite 和 WSPSend 呼叫中的來源緩衝區,以及 WSPRdmaRead 和 WSPRecv 呼叫中的接收緩衝區。
WSPDeregisterMemory
釋放先前呼叫 WSPRegisterMemory 函式 所註冊的緩衝區陣列。
WSPRegisterRdmaMemory
註冊向遠端對等連線公開的 RDMA 緩衝區陣列,以便將資料傳送至該對等連線或從該對等連線傳送資料。 遠端對等端的通訊端可以使用這個 RDMA 緩衝區陣列作為 WSPRdmaWrite 呼叫中的目標緩衝區,以及 WSPRdmaRead 呼叫中的來源緩衝區。
WSPDeregisterRdmaMemory
釋放先前呼叫 WSPRegisterRdmaMemory 函式 所註冊的緩衝區陣列。
WSPMemoryRegistrationCacheCallback
釋放應用程式的緩衝區擁有權,以及緩衝區和實體記憶體之間的鎖定,並從 SAN 服務提供者的快取中移除緩衝區,以及從 SAN NIC 進行緩衝區註冊。
WSPRdmaRead
從位址空間中的 RDMA 緩衝區傳輸資料,讓通訊端的遠端對等可以存取位址空間中的緩衝區,而本機通訊端可以存取該緩衝區。
WSPRdmaWrite
從位址空間中,本機通訊端可以存取位址空間中遠端對等互連可存取之位址空間中目標 RDMA 緩衝區的資料。