Partilhar via


Extensões de 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 a SPI de Soquetes do Windows 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 de soquetes do Windows.

Com exceção da função WSPStartupEx, as funções estendidas listadas nesta seção são recuperadas pelo comutador de Soquetes do Windows. Para recuperar o ponto de entrada para cada uma dessas funções estendidas, o comutador de Soquetes do Windows 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 deve retornar o erro WSAEOPNOTSUPP quando o comutador de Soquetes do Windows solicita 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 buffer 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 buffer como o buffer de origem em WSPRdmaWrite e chamadas de WSPSend e o buffer de recebimento em chamadas WSPRdmaRead e WSPRecv.

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

WSPRegisterRdmaMemory
Registra uma matriz de buffer RDMA que é exposta a uma conexão de par remoto para transferir dados para ou a partir dessa 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 buffer 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 para um buffer RDMA de destino no espaço de endereço que o par remoto do soquete pode acessar.