Extensions SPI de sockets Windows pour les SAN
Cette section fournit une brève description des fonctions d’extension SAN qu’une DLL de fournisseur de services SAN doit fournir. Ces fonctions étendent le SPI des sockets Windows pour une utilisation avec un SAN. Les fonctions étendues sont définies dans Ws2san.h et sont entièrement documentées dans la section Référence directe des sockets Windows .
À l’exception de la fonction WSPStartupEx , les fonctions étendues répertoriées dans cette section sont récupérées par le commutateur Sockets Windows. Pour récupérer le point d’entrée de chacune de ces fonctions étendues, le commutateur Windows Sockets appelle la fonction WSPIoctl d’un fournisseur de services SAN et transmet le code de commande SIO_GET_EXTENSION_FUNCTION_POINTER ainsi que le GUID dont la valeur identifie l’une de ces fonctions étendues.
Un fournisseur de services SAN doit implémenter toutes les fonctions d’extension suivantes, à l’exception des fonctions WSPRdmaRead et WSPMemoryRegistrationCacheCallback . Si un fournisseur de services SAN ne prend pas en charge la fonction d’extension WSPRdmaRead ou WSPMemoryRegistrationCacheCallback , sa fonction WSPIoctl doit retourner l’erreur WSAEOPNOTSUPP lorsque le commutateur Sockets Windows demande le point d’entrée à WSPRdmaRead ou WSPMemoryRegistrationCacheCallback.
WSPStartupEx
Lance l’utilisation par le commutateur De sockets Windows d’un fournisseur de services SAN.
WSPRegisterMemory
Inscrit un tableau de mémoires tampons qu’un socket utilise comme source locale ou cible locale d’une opération de transfert de données. Un tel socket peut utiliser ce tableau de mémoires tampons comme mémoire tampon source dans les appels WSPRdmaWrite et WSPSend et la mémoire tampon de réception dans les appels WSPRdmaRead et WSPRecv .
WSPDeregisterMemory
Libère un tableau de mémoires tampons qui a été inscrit par un appel précédent à la fonction WSPRegisterMemory .
WSPRegisterRdmaMemory
Inscrit un tableau de mémoires tampons RDMA qui est exposé à une connexion d’homologue distante pour le transfert de données vers ou à partir de cette connexion d’homologue. Un socket sur l’homologue distant peut utiliser ce tableau de mémoires tampons RDMA comme mémoire tampon cible dans un appel WSPRdmaWrite et la mémoire tampon source dans un appel WSPRdmaRead .
WSPDeregisterRdmaMemory
Libère un tableau de mémoires tampons qui a été inscrit par un appel précédent à la fonction WSPRegisterRdmaMemory .
WSPMemoryRegistrationCacheCallback
Libère la propriété de la mémoire tampon d’une application et du verrou entre la mémoire tampon et la mémoire physique, et supprime la mémoire tampon du cache du fournisseur de services SAN et l’inscription de la mémoire tampon de la carte réseau SAN.
WSPRdmaRead
Transfère des données à partir d’une mémoire tampon RDMA dans l’espace d’adressage auquel l’homologue distant d’un socket peut accéder à une mémoire tampon dans l’espace d’adressage auquel le socket local peut accéder.
WSPRdmaWrite
Transfère des données à partir d’une mémoire tampon source dans l’espace d’adressage auquel un socket local peut accéder à une mémoire tampon RDMA cible dans l’espace d’adressage auquel l’homologue distant du socket peut accéder.