Funzione GetServiceA (nspapi.h)
La funzione GetService
Sintassi
INT GetServiceA(
[in] DWORD dwNameSpace,
[in] LPGUID lpGuid,
[in] LPSTR lpServiceName,
[in] DWORD dwProperties,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferSize,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);
Parametri
[in] dwNameSpace
Spazio dei nomi, o un set di spazi dei nomi predefiniti, su cui il sistema operativo deve eseguire una query per ottenere informazioni sul servizio di rete specificato.
Utilizzare una delle costanti seguenti per specificare uno spazio dei nomi.
La maggior parte delle chiamate a GetService deve usare il valore speciale NS_DEFAULT. Ciò consente a un client di ottenere senza conoscere gli spazi dei nomi disponibili in un internetwork. L'amministratore di sistema determina l'accesso allo spazio dei nomi. Gli spazi dei nomi possono venire e andare senza che il client sia in grado di conoscere le modifiche.
[in] lpGuid
Puntatore a un identificatore univoco globale (GUID) che specifica il tipo del servizio di rete. Il file di intestazione Svcguid.h include i tipi di servizio GUID di molti servizi noti all'interno degli spazi dei nomi DNS e SAP.
Il file di intestazione Svcguid.h
[in] lpServiceName
Puntatore a una stringa con terminazione zero che rappresenta in modo univoco il nome del servizio. Ad esempio, "MY SNA SERVER".
[in] dwProperties
Set di flag di bit che specificano le informazioni sul servizio recuperate dalla funzione. Ognuna di queste costanti del flag di bit, diverse da PROP_ALL, corrisponde a un determinato membro della struttura dei dati SERVICE_INFO. Se il flag è impostato, la funzione inserisce le informazioni nel membro corrispondente delle strutture di dati archiviate in *lpBuffer. Vengono definiti i flag di bit seguenti.
[out] lpBuffer
Puntatore a un buffer per ricevere una matrice di strutture NS_SERVICE_INFO e informazioni sul servizio associate. Ogni struttura NS_SERVICE_INFO contiene informazioni sul servizio nel contesto di uno spazio dei nomi specifico. Si noti che se dwNameSpace è NS_DEFAULT, la funzione archivia più di una struttura nel buffer; in caso contrario, viene archiviata una sola struttura.
Ogni struttura NS_SERVICE_INFO contiene una struttura SERVICE_INFO. I membri di queste strutture di
La funzione archivia le strutture NS_SERVICE_INFO in una matrice consecutiva, a partire dall'inizio del buffer. I puntatori nelle strutture SERVICE_INFO contenute puntano alle informazioni archiviate nel buffer tra la fine delle strutture NS_SERVICE_INFO e la fine del buffer.
[in, out] lpdwBufferSize
Puntatore a una variabile che, in input, contiene le dimensioni, in byte, del buffer a cui punta lpBuffer. Nell'output, questa variabile contiene il numero di byte necessari per archiviare le informazioni richieste. Se questo valore di output è maggiore del valore di input, la funzione non è riuscita a causa di dimensioni del buffer insufficienti.
[in, optional] lpServiceAsyncInfo
Riservato per uso futuro. Deve essere impostato su NULL.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è il numero di strutture NS_SERVICE_INFO archiviate in *lpBuffer. Zero indica che non sono state archiviate strutture.
Se la funzione ha esito negativo, il valore restituito è SOCKET_ERROR ( - 1). Per ottenere informazioni estese sull'errore, chiamare GetLastError, che restituisce uno dei valori di errore estesi seguenti.
Codice di errore | Significato |
---|---|
|
Il buffer a cui punta lpBuffer è troppo piccolo per ricevere tutte le informazioni richieste. Chiamare la funzione con un buffer almeno pari al valore restituito in *lpdwBufferSize. |
|
Il servizio specificato non è stato trovato oppure lo spazio dei nomi specificato non è in uso. Il valore restituito della funzione è zero in questo caso. |
Osservazioni
Nota
L'intestazione nspapi.h definisce GetService come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
nspapi.h |
libreria |
Mswsock.lib |
dll | Mswsock.dll |