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.
Um provedor de rede é uma DLL que permite que o sistema operacional Windows ofereça suporte a um protocolo de rede específico. Ele faz isso implementando a API do provedor de rede. Esta API é um conjunto de funções que o Multiple Provider Router (MPR) chama para comunicar com a rede. Em seguida, o provedor de rede converte essas chamadas em chamadas de API específicas da rede para executar a ação especificada pelo MPR. Desta forma, o sistema operacional Windows pode interagir com novos protocolos de rede sem ter que entender suas APIs específicas de rede.
Para criar um provedor de rede, escreva uma DLL que exporte a funçãoNPGetCaps.
O suporte das outras funções na API do provedor de rede é opcional. Se o seu provedor de rede não requer uma função, sua DLL não precisa implementá-la ou fornecer uma implementação de stub. Para obter mais informações, consulte os tópicos de funções individuais em Network Provider Functions.
A exceção é que, se você oferecer suporte a uma das seguintes funções de enumeração, também deverá oferecer suporte às outras duas funções: NPOpenEnum, NPEnumResourcee NPCloseEnum.
As diretrizes a seguir descrevem como escrever um provedor de rede que interaja bem com o MPR e o sistema operacional Windows. Sempre que possível, seu provedor deve seguir as seguintes diretrizes de velocidade, validação e roteamento.
Velocidade
Um provedor de rede deve determinar rapidamente se um recurso de rede é seu. Isso ocorre porque o MPR pode ter que percorrer muitos provedores para encontrar o proprietário de um recurso.
Se o provedor de rede não for o proprietário do recurso, ele deverá retornar imediatamente o código de status WN_BAD_NETNAME.
Também é importante que os provedores que suportam NPGetDirectoryType retornem resultados para essa função rapidamente porque ela é chamada enquanto o WinFile está pintando a árvore de diretórios.
Validação
A ordem de validação é importante. Um provedor de rede deve primeiro determinar se sua rede é iniciada e, em seguida, determinar se a rede e o provedor de rede suportam a operação. Se, após estas verificações, o fornecedor de rede receber quaisquer recursos de rede, deve determinar se os possui. Finalmente, deve validar outros parâmetros.
Roteamento
Se o MPR tiver que percorrer os provedores de rede, ele tentará todos os provedores até que um aceite a chamada. Em outras palavras, o MPR sempre continua tentando encontrar um provedor de rede.
No entanto, toma nota do primeiro erro significativo comunicado por um fornecedor. Erros como ERROR_BAD_NETPATH, ERROR_BAD_NET_NAME, ERROR_INVALID_PARAMETER ERROR_INVALID_LEVEL são considerados insignificantes porque simplesmente significam que o provedor não gerencia o recurso. No entanto, se o provedor falhar com o erro ERROR_INVALID_PASSWORD ou algum outro erro significativo, o MPR registra esse erro e continua alternando entre os provedores de rede. Em geral, no roteamento, se nenhum provedor aceitar a chamada, o MPR relata o primeiro erro significativo que encontra ao percorrer os provedores de rede.
Seu provedor de rede deve levar esse comportamento do MPR em consideração ao decidir qual mensagem de erro retornar.
Nota de execução
Na implementação de DLLs do provedor de rede, o provedor não deve chamar outras funções de rede do Windows , APIs do Shell ou consultas baseadas em caminhos UNC que possam causar reentrada no subsistema MPR. Se fizer essas chamadas de uma DLL de provedor de rede, a aplicação ou outros componentes do sistema operativo podem enfrentar contenção, baixo desempenho ou bloqueios dentro do subsistema MPR.