Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O comutador Windows Sockets chama as funções de extensão de um fornecedor de serviços SAN para registar todos os buffers de dados para o envio e receção de mensagens e para operações RDMA numa rede de área do sistema. Essas funções de extensão registram um buffer em uma região de memória física para uso em um soquete SAN específico conectado a um par remoto. Para obter uma descrição dessas funções de extensão, consulte Windows Sockets SPI Extensions for SANs.
Registrando buffers de dados
O switch chama a função de extensão WSPRegisterMemory de um provedor de serviços SAN em nome de um aplicativo executado em um processo local para registrar buffers de dados que podem ser acessados somente por esse processo. Os identificadores de buffer que WSPRegisterMemory retorna são válidos apenas no contexto do processo local que executou o registo. O switch chama WSPRegisterMemory para registrar buffers que servem como o buffer de recebimento de mensagens em uma chamada para a função WSPRecv ou o buffer de envio de mensagens em uma chamada para a função WSPSend . O switch também chama WSPRegisterMemory para registar buffers que servem como buffer local de receção RDMA numa chamada para a função de extensão WSPRdmaRead ou como origem RDMA local numa chamada para a função de extensão WSPRdmaWrite. Depois que o processo local termina usando buffers que foram registrados com WSPRegisterMemory, o switch chama a função de extensão WSPDeregisterMemory para liberar esses buffers.
O switch chama, em nome de uma aplicação que é executada num processo local, a função de extensão WSPRegisterRdmaMemory do fornecedor de serviços SAN para registar buffers RDMA, que podem ser acedidos por processos locais e remotos. Os descritores de buffer que WSPRegisterRdmaMemory retorna são válidos somente para operações de transferência de dados RDMA que um par remoto inicia no contexto da ligação do par com o socket SAN no qual o registo foi executado. O comutador na ligação remota utiliza estes buffers RDMA como destino numa chamada para a função de extensão WSPRdmaWrite ou como origem numa chamada para a função de extensão WSPRdmaRead. Depois que os processos locais e remotos terminarem de usar buffers que foram registrados com WSPRegisterRdmaMemory, o switch chama a função de extensão WSPDeregisterRdmaMemory para liberar esses buffers.
Gerenciando o acesso à memória
Um provedor de serviços de SAN deve impedir o acesso não autorizado à memória registrada.
A memória deve ser registada e acessível da seguinte forma:
A memória registrada para acesso local deve estar disponível apenas para o processo no qual o switch chamado WSPRegisterMemory.
A memória registada para acesso tanto local quanto remoto pode ser acedida pelo processo que chamou o switch WSPRegisterRdmaMemory para registar a memória, ou pelo par remoto que está conectado ao soquete SAN ao qual a memória está registada.
A memória deve ser acessível apenas enquanto estiver registada e enquanto a ligação estiver estabelecida. Um provedor de serviços de SAN deve garantir que não torne essa memória inadvertidamente acessível a outros processos em execução no mesmo computador ou em outros computadores na SAN.
A memória registrada apenas para acesso de leitura não deve estar disponível para acesso de gravação. A memória registrada apenas para acesso de gravação não deve estar disponível para acesso de leitura.
Usando memória registrada
O switch registra duas regiões virtualmente contíguas de memória para cada soquete TCP conectado a ser usado para negociar uma sessão de transferência de dados. O switch usa uma região de memória para fornecer buffers de mensagens contendo dados de envio ao chamar a função WSPSend de um provedor de serviços SAN. O switch usa a outra região da memória para postar buffers de mensagens para receber dados ao chamar a função WSPRecv de um provedor de serviços SAN.
O switch normalmente registra buffers RDMA apenas se transferir dados de aplicação em operações RDMA.
Antes de fechar um soquete, o switch chama as funções WSPDeregisterMemory ou WSPDeregisterRdmaMemory de um provedor de serviços SAN para liberar qualquer memória que uma operação de transferência de dados pendente não esteja usando no momento. O provedor de serviços de SAN também deve liberar memória associada a operações pendentes de transferência de dados.