Função WSAGetServiceClassInfoW (winsock2.h)

A função WSAGetServiceClassInfo recupera as informações de classe (esquema) relativas a uma classe de serviço especificada de um provedor de namespace especificado.

Sintaxe

INT WSAAPI WSAGetServiceClassInfoW(
  [in]      LPGUID                 lpProviderId,
  [in]      LPGUID                 lpServiceClassId,
  [in, out] LPDWORD                lpdwBufSize,
  [out]     LPWSASERVICECLASSINFOW lpServiceClassInfo
);

Parâmetros

[in] lpProviderId

Um ponteiro para um GUID que identifica um provedor de namespace específico.

[in] lpServiceClassId

Um ponteiro para um GUID que identifica a classe de serviço.

[in, out] lpdwBufSize

Na entrada, o número de bytes contidos no buffer apontado pelo parâmetro lpServiceClassInfo .

Na saída, se a função falhar e o erro for WSAEFAULT, esse parâmetro especificará o tamanho mínimo, em bytes, do buffer apontado para lpServiceClassInfo necessário para recuperar o registro.

[out] lpServiceClassInfo

Um ponteiro para uma estrutura WSASERVICECLASSINFO que contém as informações de classe de serviço do provedor de namespace indicado para a classe de serviço especificada.

Retornar valor

O valor retornado será zero se o WSAGetServiceClassInfo tiver sido bem-sucedido. Caso contrário, o valor SOCKET_ERROR será retornado e um número de erro específico poderá ser recuperado chamando WSAGetLastError.

Código do erro Significado
WSA_NOT_ENOUGH_MEMORY
Não havia memória suficiente para executar a operação.
WSAEACCES
A rotina de chamada não tem privilégios suficientes para acessar as informações.
WSAEFAULT
O buffer apontado pelo parâmetro lpServiceClassInfo é muito pequeno para conter um WSASERVICECLASSINFOW. O aplicativo precisa passar um buffer maior.
WSAEINVAL
O identificador de classe de serviço especificado ou o identificador do provedor de namespace não é válido. Esse erro será retornado se os parâmetros lpProviderId, lpServiceClassId, lpdwBufSize ou lpServiceClassInfo forem NULL.
WSAEOPNOTSUPP
Não há suporte para a operação para o tipo de objeto referenciado. Esse erro é retornado por alguns provedores de namespace que não dão suporte à obtenção de informações de classe de serviço.
WSANO_DATA
O nome solicitado é válido, mas nenhum dado do tipo solicitado foi encontrado.
WSANOTINITIALISED
O WS2_32.DLL não foi inicializado. O aplicativo deve primeiro chamar WSAStartup antes de chamar qualquer função do Windows Sockets.
WSATYPE_NOT_FOUND
A classe especificada não foi encontrada.

Comentários

A função WSAGetServiceClassInfo recupera informações de classe de serviço de um provedor de namespace. As informações de classe de serviço recuperadas de um provedor de namespace específico podem não ser o conjunto completo de informações de classe que foi especificado quando a classe de serviço foi instalada. Provedores de namespace individuais só são necessários para reter informações de classe de serviço aplicáveis aos namespaces aos quais dão suporte. Consulte a seção Estruturas de dados da classe de serviço para obter mais informações.

Observação

O cabeçalho winsock2.h define WSAGetServiceClassInfo como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winsock2.h
Biblioteca Ws2_32.lib
DLL Ws2_32.dll

Confira também

Estruturas de dados da classe de serviço

WSAInstallServiceClass

WSASERVICECLASSINFOW

Wsastartup

Funções Winsock

Referência de Winsock