Compartilhar via


Retornando valores para o MPR

As funções de Rede do Windows retornam WN_SUCCESS com êxito ou retornam um valor diferente de zero exclusivo se a função encontrar um erro. Além disso, eles retornam informações de erro estendidas usando WNetSetLastError e SetLastError.

Para dar suporte ao comportamento acima, as funções do provedor de rede não devem chamar SetLastError antes de retornar. Isso ocorre porque o MPR chama SetLastError para as funções na API do Provedor de Rede após o retorno. Se os provedores de rede chamarem SetLastError diretamente, eles farão chamadas de função redundantes. As funções do provedor de rede devem simplesmente retornar um código de erro. Os códigos de erro são especificados na descrição da função ou Valores retornados. Além disso, as funções do provedor de rede podem retornar qualquer Código de Erro do Sistema, como memória insuficiente. A única exceção é NPGetCaps, que deve retornar uma máscara indicando as funções compatíveis com o provedor de rede.

Se uma função de provedor de rede precisar retornar informações de erro estendidas, ela deverá chamar WNetSetLastError. Essa função é fornecida pelo sistema operacional Windows para uso por provedores de rede. Quando o provedor chama WNetSetLastError, ele pode definir uma cadeia de caracteres contendo informações adicionais sobre o erro. Essas informações são armazenadas por thread. Isso é análogo a SetLastError para aplicativos do Windows. O sistema operacional Windows chama WNetSetLastError para marcar para uma cadeia de caracteres armazenada usando WNetSetLastError e, se encontrado, retorna as informações de erro estendidas para o aplicativo de chamada que iniciou a solicitação de rede.

Observação

O prefixo WNet de WNetSetLastError é enganoso, pois essa API, ao contrário de WNetSetLastError, não faz parte do conjunto de API de Rede do Windows. WNetSetLastError destina-se a ser usado somente por provedores de rede. O nome WNetSetLastError é retido para compatibilidade com provedores existentes.