Compartilhar via


Função WSAGetServiceClassInfoW (winsock2.h)

A função WSAGetServiceClassInfo recupera as informações de classe (esquema) pertencentes 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ários para recuperar o registro.

[out] lpServiceClassInfo

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

Valor de retorno

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 de 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 ou identificador de provedor de namespace especificado não é válido. Esse erro será retornado se os parâmetros lpProviderId, lpServiceClassId, lpdwBufSizeou lpServiceClassInfo estiverem 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 as funções do Windows Sockets.
WSATYPE_NOT_FOUND
A classe especificada não foi encontrada.

Observações

A função WSAGetServiceClassInfo recupera informações de classe de serviço de um provedor de namespace. As informações da classe de serviço recuperadas de um provedor de namespace específico podem não ser o conjunto completo de informações de classe especificadas 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.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

estruturas de dados da classe de serviço

WSAInstallServiceClass

WSASERVICECLASSINFOW

WSAStartup

do Winsock Functions

referência Winsock