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 switch Windows Sockets lida com o bloqueio de chamadas e o cancelamento dessas chamadas internamente ou as encaminha para o provedor de serviços TCP/IP. O switch nunca chama a função WSPCancelBlockingCall para que um fornecedor de serviços SAN cancele um pedido de bloqueio que está em andamento. Portanto, um provedor de serviços de SAN não é obrigado a implementar uma função WSPCancelBlockingCall.
O switch lida com as seguintes solicitações de bloqueio e cancelamentos correspondentes das seguintes maneiras:
Quando um aplicativo solicita a conexão de um soquete SAN a um endereço de destino específico no modo de bloqueio, o switch recebe uma chamada de bloqueio WSPConnect. O switch encaminha a solicitação de conexão em modo não-bloqueante para a função WSPConnect do provedor de serviços SAN apropriado. Se o switch precisar cancelar essa solicitação de conexão por algum motivo, ele chamará a função de WSPCloseSocket do provedor de serviços SAN. O provedor de serviços de SAN deve cancelar imediatamente a solicitação de conexão e liberar recursos para o soquete.
Quando o switch recebe uma solicitação de bloqueio iniciada por um aplicativo para executar uma operação de transferência de dados em um soquete SAN, ele encaminha a solicitação de transferência de dados de maneira sobreposta (sem bloqueio) para o provedor de serviços SAN apropriado. Por exemplo, se o switch receber uma chamada de WSPSend síncrona (bloqueio), ele chamará a função WSPSend do provedor de serviços de SAN apropriado de uma maneira sobreposta (sem bloqueio). Se o aplicativo cancelar posteriormente a operação de transferência de dados e o switch tiver controle do buffer do aplicativo, o switch concluirá a solicitação do aplicativo com um status de falha. Se o buffer do aplicativo estiver envolvido em uma operação RDMA pendente, o switch aguardará a conclusão da operação. Se uma transferência RDMA demorar muito para ser concluída, o switch chamará a função de WSPCloseSocket do provedor de serviços SAN apropriado para fechar a conexão de maneira abortiva, forçando a sua conclusão.
Observação Se um aplicativo cancelar uma chamada de bloqueio, ele não poderá contar com a preservação de uma conexão. Somente a chamada de WSPCloseSocket tem a garantia de ter êxito no socket após o cancelamento de uma solicitação de bloqueio. Para obter mais informações, consulte a documentação do Windows Sockets SPI no SDK do Microsoft Windows.