Condividi tramite


Funzione di callback LPNSPGETSERVICECLASSINFO (ws2spi.h)

La funzione NSPGetServiceClassInfo recupera tutte le informazioni pertinenti sulla classe (schema) relative al provider dello spazio dei nomi. Questa chiamata recupera tutte le informazioni specifiche dello spazio dei nomi comuni a tutte le istanze del servizio, incluse le informazioni di connessione per SAP o le informazioni sulla porta per SAP o TCP.

Sintassi

LPNSPGETSERVICECLASSINFO Lpnspgetserviceclassinfo;

INT Lpnspgetserviceclassinfo(
  [in]      LPGUID lpProviderId,
  [in, out] LPDWORD lpdwBufSize,
  [in, out] LPWSASERVICECLASSINFOW lpServiceClassInfo
)
{...}

Parametri

[in] lpProviderId

Puntatore al GUID del provider dello spazio dei nomi specifico da cui recuperare lo schema della classe del servizio.

[in, out] lpdwBufSize

In input, le dimensioni, in byte, del buffer a cui punta il parametro lpServiceClassInfo .

Nell'output, se la funzione ha esito negativo e l'errore è WSAEFAULT, questo parametro specifica le dimensioni minime, in byte, del buffer a cui punta il parametro lpServiceClassInfo necessario per recuperare il record.

[in, out] lpServiceClassInfo

Restituisce un puntatore alla struttura WSASERVICECLASSINFOW che contiene la classe del servizio alle informazioni di mapping specifiche dello spazio dei nomi. Il parametro lpServiceClassId deve essere compilato per indicare quale record WSASERVICECLASSINFOW deve essere restituito.

Valore restituito

Se non si verifica alcun errore, la funzione NSPGetServiceClassInfo restituisce NO_ERROR (zero). In caso contrario, viene restituito SOCKET_ERROR (-1) e il provider dello spazio dei nomi deve impostare il codice di errore appropriato usando WSASetLastError.

Codice di errore Significato
WSA_NOT_ENOUGH_MEMORY
Memoria insufficiente per eseguire questa operazione.
WSAEACCES
La routine chiamante non dispone di privilegi sufficienti per accedere alle informazioni.
WSAEFAULT
Il buffer a cui punta il parametro lpServiceClass era troppo piccolo per contenere una struttura WSASERVICECLASSINFOW . L'applicazione deve passare un buffer più grande.
WSAEINVAL
L'identificatore della classe di servizio o l'identificatore del provider dello spazio dei nomi specificato non è valido. Questo errore viene restituito se i parametri lpProviderId, lpServiceClassId, lpdwBufSize o lpServiceClassInfo sono **NULL**.
WSAEOPNOTSUPP
L'operazione non è supportata. Questo errore viene restituito se il provider dello spazio dei nomi non implementa questa funzione.
WSANO_DATA
Il nome richiesto è valido, ma non sono stati trovati dati del tipo richiesto.
WSATYPE_NOT_FOUND
La classe specificata non è stata trovata.

Commenti

Il W2_32.dll usa questa funzione per implementare la funzione WSAGetServiceClassNameByClassId , nonché per recuperare le informazioni specifiche dello spazio dei nomi passate alle funzioni NSPLookupServiceBegin e NSPSetService .

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ws2spi.h

Vedi anche

NSPInstallServiceClass

NSPLookupServiceBegin

NSPRemoveServiceClass

NSPSetService

WSAGetServiceClassInfo

WSAGetServiceClassNameByClassId

WSASERVICECLASSINFOW

WSASetLastError