Condividi tramite


Struttura WSAQUERYSETW (winsock2.h)

La struttura WSAQUERYSET fornisce informazioni rilevanti su un determinato servizio, tra cui ID classe di servizio, nome del servizio, identificatore dello spazio dei nomi applicabile e informazioni sul protocollo, nonché un set di indirizzi di trasporto in cui il servizio è in ascolto.

Sintassi

typedef struct _WSAQuerySetW {
  DWORD         dwSize;
  LPWSTR        lpszServiceInstanceName;
  LPGUID        lpServiceClassId;
  LPWSAVERSION  lpVersion;
  LPWSTR        lpszComment;
  DWORD         dwNameSpace;
  LPGUID        lpNSProviderId;
  LPWSTR        lpszContext;
  DWORD         dwNumberOfProtocols;
  LPAFPROTOCOLS lpafpProtocols;
  LPWSTR        lpszQueryString;
  DWORD         dwNumberOfCsAddrs;
  LPCSADDR_INFO lpcsaBuffer;
  DWORD         dwOutputFlags;
  LPBLOB        lpBlob;
} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;

Membri

dwSize

Tipo: DWORD

Dimensione, in byte, della struttura WSAQUERYSET . Questo membro viene usato come meccanismo di controllo delle versioni poiché le dimensioni della struttura WSAQUERYSET di sono state modificate nelle versioni successive di Windows.

lpszServiceInstanceName

Tipo: LPTSTR

Puntatore a una stringa con terminazione NULL facoltativa che contiene il nome del servizio. La semantica per l'uso di caratteri jolly all'interno della stringa non è definita, ma può essere supportata da determinati provider di spazi dei nomi.

lpServiceClassId

Tipo: LPGUID

GUID corrispondente alla classe del servizio. Questo membro deve essere impostato.

lpVersion

Tipo: LPWSAVERSION

Puntatore a un numero di versione facoltativo desiderato del provider dello spazio dei nomi. Questo membro fornisce la semantica di confronto delle versioni, ovvero la versione richiesta deve corrispondere esattamente o la versione non deve essere minore del valore fornito.

lpszComment

Tipo: LPTSTR

Questo membro viene ignorato per le query.

dwNameSpace

Tipo: DWORD

Identificatore dello spazio dei nomi che determina quali provider di spazi dei nomi vengono sottoposti a query. Il passaggio di un identificatore di spazio dei nomi specifico comporterà solo i provider di spazi dei nomi che supportano la query dello spazio dei nomi specificato. Se si specifica NS_ALL, verranno eseguite query su tutti i provider di spazi dei nomi installati e attivi.

Le opzioni per il membro dwNameSpace sono elencate nel file di inclusione Winsock2.h. Diversi nuovi provider di spazi dei nomi sono inclusi in Windows Vista e versioni successive. È possibile installare altri provider di spazi dei nomi, pertanto i valori possibili seguenti sono solo quelli comunemente disponibili. Sono possibili molti altri valori.

Valore Significato
NS_ALL
Tutti gli spazi dei nomi installati e attivi.
NS_BTH
Spazio dei nomi Bluetooth. Questo identificatore dello spazio dei nomi è supportato in Windows Vista e versioni successive.
NS_DNS
Spazio dei nomi DNS (Domain Name System).
NS_EMAIL
Spazio dei nomi di posta elettronica. Questo identificatore dello spazio dei nomi è supportato in Windows Vista e versioni successive.
NS_NLA
Spazio dei nomi NLA (Network Location Awareness). Questo identificatore dello spazio dei nomi è supportato in Windows XP e versioni successive.
NS_PNRPNAME
Spazio dei nomi peer-to-peer per un nome peer specifico. Questo identificatore dello spazio dei nomi è supportato in Windows Vista e versioni successive.
NS_PNRPCLOUD
Spazio dei nomi peer-to-peer per una raccolta di nomi peer. Questo identificatore dello spazio dei nomi è supportato in Windows Vista e versioni successive.

lpNSProviderId

Tipo: LPGUID

Puntatore a un GUID facoltativo di un provider di spazi dei nomi specifico da eseguire in caso di registrazione di più provider di spazi dei nomi in un singolo spazio dei nomi, ad esempio NS_DNS. Se si passa il GUID per un provider di spazi dei nomi specifico, verrà eseguita una query solo sul provider di spazi dei nomi specificato. È possibile chiamare le funzioni WSAEnumNameSpaceProviders e WSAEnumNameSpaceProvidersEx per recuperare il GUID per un provider di spazi dei nomi.

lpszContext

Tipo: LPTSTR

Puntatore a un punto iniziale facoltativo della query in uno spazio dei nomi gerarchico.

dwNumberOfProtocols

Tipo: DWORD

Dimensione, in byte, della matrice di vincoli del protocollo. Questo membro può essere zero.

lpafpProtocols

Tipo: LPAFPROTOCOLS

Puntatore a una matrice facoltativa di strutture AFPROTOCOLS. Verranno restituiti solo i servizi che utilizzano questi protocolli.

lpszQueryString

Tipo: LPTSTR

Puntatore a una stringa di query con terminazione NULL facoltativa. Alcuni spazi dei nomi, ad esempio Whois++, supportano query di tipo SQL arricchite contenute in una stringa di testo semplice. Questo parametro viene usato per specificare tale stringa.

dwNumberOfCsAddrs

Tipo: DWORD

Questo membro viene ignorato per le query.

lpcsaBuffer

Tipo: LPCSADDR_INFO

Questo membro viene ignorato per le query.

dwOutputFlags

Tipo: DWORD

Questo membro viene ignorato per le query.

lpBlob

Tipo: LPBLOB

Puntatore facoltativo ai dati utilizzati per eseguire query o impostare informazioni sullo spazio dei nomi specifiche del provider. Il formato di queste informazioni è specifico del provider dello spazio dei nomi.

Osservazioni

La struttura WSAQUERYSET viene usata come parte dell'architettura del provider dello spazio dei nomi originale versione 1 disponibile in Windows 95 e versioni successive. Una versione più recente 2 dell'architettura dello spazio dei nomi è disponibile in Windows Vista e versioni successive.

Nella maggior parte dei casi, le applicazioni interessate solo a un particolare protocollo di trasporto devono vincolare la query in base alla famiglia di indirizzi e al protocollo anziché allo spazio dei nomi. Ciò consente a un'applicazione che deve individuare un servizio TCP/IP, ad esempio, di elaborare la query in base a tutti gli spazi dei nomi disponibili, ad esempio il file host locale, IL DNS e NIS.

Nota

L'intestazione winsock2.h definisce WSAQUERYSET 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]
intestazione winsock2.h

Vedere anche

Bluetooth e WSAQUERYSET per la richiesta di dispositivi

Bluetooth e WSAQUERYSET for Service Inquiry

Bluetooth e WSAQUERYSET per set service

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSALookupServiceBegin

WSALookupServiceNext

WSAQUERYSET2

WSASetService