Compartilhar via


Extensões SPI do Windows Sockets para SANs

Esta seção fornece uma breve descrição das funções de extensão SAN que uma DLL do provedor de serviços SAN deve fornecer. Essas funções estendem o SPI do Windows Sockets para uso com uma SAN. As funções estendidas são definidas em Ws2san.h e estão totalmente documentadas na seção Referência Direta do Windows Sockets .

Exceto para a função WSPStartupEx , as funções estendidas listadas nesta seção são recuperadas pela opção Windows Sockets. Para recuperar o ponto de entrada para cada uma dessas funções estendidas, a opção Windows Sockets chama a função WSPIoctl de um provedor de serviços SAN e passa o código de comando SIO_GET_EXTENSION_FUNCTION_POINTER junto com o GUID cujo valor identifica uma dessas funções estendidas.

Um provedor de serviços SAN deve implementar todas as funções de extensão a seguir, com exceção das funções WSPRdmaRead e WSPMemoryRegistrationCacheCallback . Se um provedor de serviços SAN não der suporte à função de extensão WSPRdmaRead ou WSPMemoryRegistrationCacheCallback , sua função WSPIoctl deverá retornar o erro WSAEOPNOTSUPP quando a opção Windows Sockets solicitar o ponto de entrada para WSPRdmaRead ou WSPMemoryRegistrationCacheCallback.

WSPStartupEx
Inicia o uso do comutador do Windows Sockets de um provedor de serviços SAN.

WSPRegisterMemory
Registra uma matriz de buffers que um soquete usa como a origem local ou o destino local de uma operação de transferência de dados. Esse soquete pode usar essa matriz de buffers como o buffer de origem em chamadas WSPRdmaWrite e WSPSend e o buffer de recebimento em chamadas WSPRdmaRead e WSPRecv .

WSPDeregisterMemory
Libera uma matriz de buffers que foi registrada por uma chamada anterior para a função WSPRegisterMemory .

WSPRegisterRdmaMemory
Registra uma matriz de buffer RDMA exposta a uma conexão de par remoto para transferir dados de ou para essa conexão de par. Um soquete no par remoto pode usar essa matriz de buffer RDMA como o buffer de destino em uma chamada WSPRdmaWrite e o buffer de origem em uma chamada WSPRdmaRead .

WSPDeregisterRdmaMemory
Libera uma matriz de buffers que foi registrada por uma chamada anterior para a função WSPRegisterRdmaMemory .

WSPMemoryRegistrationCacheCallback
Libera a propriedade do buffer de um aplicativo e o bloqueio entre o buffer e a memória física e remove o buffer do cache do provedor de serviços SAN e o registro de buffer da NIC san.

WSPRdmaRead
Transfere dados de um buffer RDMA no espaço de endereço que o par remoto de um soquete pode acessar a um buffer no espaço de endereço que o soquete local pode acessar.

WSPRdmaWrite
Transfere dados de um buffer de origem no espaço de endereço que um soquete local pode acessar a um buffer RDMA de destino no espaço de endereço que o par remoto do soquete pode acessar.