Funções getservbyname e getservbyport na API
As funções getservbyname e getservbyport usam a função WSALookupServiceBegin para consultar SVCID_INET_SERVICEBYNAME como o GUID da classe de serviço. O membro lpszServiceInstanceName na estrutura WSAQUERYSET passado para a função WSALookupServiceBegin faz referência a uma cadeia de caracteres para indicar o nome do serviço ou a porta de serviço e (opcionalmente) o protocolo de serviço. A formatação da cadeia de caracteres é ilustrada como FTP ou TCP ou 21/TCP ou apenas FTP. A cadeia de caracteres não diferencia maiúsculas de minúsculas. A marca de barra, se presente, separa o identificador de protocolo da parte anterior da cadeia de caracteres. O Ws2_32.dll especificará LUP_RETURN_BLOB e o provedor de namespace colocará uma estrutura SERVENT no blob (usando deslocamentos em vez de ponteiros, conforme descrito acima). Os provedores de namespace também devem respeitar esses outros sinalizadores LUP_RETURN_*.
Sinalizador | Descrição |
---|---|
LUP_RETURN_NAME | Retorna o membro s_name da estrutura SERVENT em lpszServiceInstanceName. |
LUP_RETURN_TYPE | Retorna GUID canônico em lpServiceClassId Entende-se que um serviço identificado como FTP ou 21 pode estar em outra porta de acordo com convenções estabelecidas localmente. O parâmetro s_port da estrutura SERVENT deve indicar onde o serviço pode ser contatado no ambiente local. O GUID canônico retornado quando LUP_RETURN_TYPE está definido deve ser um dos GUIDs predefinidos de Svcs.h que corresponde ao número da porta indicado na estrutura SERVENT . |
Tópicos relacionados