Freigeben über


Windows Sockets SPI-Erweiterungen für SANs

Dieser Abschnitt enthält eine kurze Beschreibung der SAN-Erweiterungsfunktionen, die eine SAN-Dienstanbieter-DLL bereitstellen muss. Diese Funktionen erweitern den Windows Sockets SPI für die Verwendung mit einem SAN. Die erweiterten Funktionen sind in Ws2san.h definiert und sind vollständig im Abschnitt Windows Sockets Direct Reference dokumentiert.

Mit Ausnahme der WSPStartupEx--Funktion werden die in diesem Abschnitt aufgeführten erweiterten Funktionen von der Windows Sockets-Option abgerufen. Um den Einstiegspunkt zu den einzelnen erweiterten Funktionen abzurufen, ruft der Windows Sockets-Switch die WSPIoctl--Funktion eines SAN-Dienstanbieters auf und übergibt den SIO_GET_EXTENSION_FUNCTION_POINTER Befehlscode zusammen mit der GUID, deren Wert eine dieser erweiterten Funktionen identifiziert.

Ein SAN-Dienstanbieter muss alle folgenden Erweiterungsfunktionen mit Ausnahme der WSPRdmaRead- und WSPMemoryRegistrationCacheCallback- funktionen implementieren. Wenn ein SAN-Dienstanbieter entweder die WSPRdmaRead- oder WSPMemoryRegistrationCacheCallback Erweiterungsfunktion nicht unterstützt, die WSPIoctl--Funktion muss den Fehler WSAEOPNOTSUPP zurückgeben, wenn der Windows Sockets-Switch den Einstiegspunkt entweder an WSPRdmaRead oder WSPMemoryRegistrationCacheCallbackanfordert.

WSPStartupEx-
Initiiert die Verwendung eines SAN-Dienstanbieters für windows Sockets.

WSPRegisterMemory-
Registriert ein Pufferarray, das ein Socket als lokale Quelle oder als lokales Ziel eines Datenübertragungsvorgangs verwendet. Ein solcher Socket kann dieses Pufferarray als Quellpuffer in WSPRdmaWrite- und WSPSend-Aufrufe und den Empfangenden Puffer in WSPRdmaRead- und WSPRecv- Aufrufen verwenden.

WSPDeregisterMemory-
Gibt ein Pufferarray frei, das von einem vorherigen Aufruf der WSPRegisterMemory-Funktion registriert wurde.

WSPRegisterRdmaMemory-
Registriert ein RDMA-Pufferarray, das für eine Remote-Peerverbindung zum Übertragen von Daten in oder von dieser Peerverbindung verfügbar gemacht wird. Ein Socket am Remote-Peer kann dieses RDMA-Pufferarray als Zielpuffer in einem WSPRdmaWrite Aufruf und den Quellpuffer in einem WSPRdmaRead Aufruf verwenden.

WSPDeregisterRdmaMemory-
Gibt ein Pufferarray frei, das von einem vorherigen Aufruf der WSPRegisterRdmaMemory-Funktion registriert wurde.

WSPMemoryRegistrationCacheCallback-
Gibt den Besitz des Puffers einer Anwendung und die Sperre zwischen dem Puffer und dem physischen Speicher frei und entfernt den Puffer aus dem Cache des SAN-Dienstanbieters und der Pufferregistrierung aus der SAN NIC.

WSPRdmaRead-
Überträgt Daten aus einem RDMA-Puffer im Adressraum, auf den der Remote-Peer eines Sockets auf einen Puffer im Adressraum zugreifen kann, auf den der lokale Socket zugreifen kann.

WSPRdmaWrite-
Überträgt Daten aus einem Quellpuffer im Adressraum, auf den ein lokaler Socket zugreifen kann, auf einen Ziel-RDMA-Puffer im Adressraum, auf den der Remote-Peer des Sockets zugreifen kann.