Eventi
Funzione SetAddrInfoExW (ws2tcpip.h)
La funzione SetAddrInfoEx registra o deregista un nome, un nome di servizio e gli indirizzi associati a un provider di spazi dei nomi specifico.
INT WSAAPI SetAddrInfoExW(
[in] PCWSTR pName,
[in] PCWSTR pServiceName,
[in, out] SOCKET_ADDRESS *pAddresses,
[in] DWORD dwAddressCount,
[in, optional] LPBLOB lpBlob,
[in] DWORD dwFlags,
[in] DWORD dwNameSpace,
[in, optional] LPGUID lpNspId,
[in, optional] timeval *timeout,
[in, optional] LPOVERLAPPED lpOverlapped,
[in, optional] LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
[out, optional] LPHANDLE lpNameHandle
);
[in] pName
Puntatore a una stringa con terminazione NULL contenente un nome con cui gli indirizzi devono essere registrati o annullati la registrazione. Interpretazione di questo parametro specifico per il provider dello spazio dei nomi.
[in] pServiceName
Puntatore a una stringa facoltativa con terminazione NULL contenente il nome del servizio associato al nome registrato. L'interpretazione di questo parametro è specifica per il provider dello spazio dei nomi.
[in, out] pAddresses
Puntatore a un elenco facoltativo di indirizzi da registrare con il provider dello spazio dei nomi.
[in] dwAddressCount
Numero di indirizzi passati nel parametro pAddresses . Se questo parametro è zero, il parametro pName viene deregisterato dal provider dello spazio dei nomi.
[in, optional] lpBlob
Puntatore facoltativo ai dati utilizzati per impostare informazioni sullo spazio dei nomi specifiche del provider associate al parametro pName oltre a un elenco di indirizzi. Tutte le informazioni che non possono essere passate nel parametro pAddresses possono essere passate nel parametro lpBlob . Il formato di queste informazioni è specifico del provider dello spazio dei nomi.
[in] dwFlags
Set di flag che controllano la modalità di registrazione dei parametri pName e pServiceName con il provider dello spazio dei nomi. L'interpretazione di queste informazioni è specifica per il provider dello spazio dei nomi.
[in] dwNameSpace
Identificatore dello spazio dei nomi che determina il provider dello spazio dei nomi con cui registrare queste informazioni. Il passaggio di un identificatore di spazio dei nomi specifico comporterà la registrazione di queste informazioni solo con i provider dello spazio dei nomi che supportano lo spazio dei nomi specificato. Se si specifica NS_ALL, le informazioni verranno registrate con tutti i provider di spazi dei nomi installati e attivi.
Le opzioni per il parametro dwNameSpace sono elencate nel file di inclusione Winsock2.h . Diversi 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. Molti altri sono possibili.
[in, optional] lpNspId
Puntatore a un GUID facoltativo di un provider di spazi dei nomi specifico per registrare queste informazioni nel caso in cui più provider di spazi dei nomi siano registrati in un singolo spazio dei nomi, ad esempio NS_DNS. Il passaggio del GUID per un provider di spazi dei nomi specifico comporterà la registrazione delle informazioni solo con il provider di spazi dei nomi specificato. È possibile chiamare la funzione WSAEnumNameSpaceProviders per recuperare il GUID per un provider di spazi dei nomi.
[in, optional] timeout
Parametro facoltativo che indica il tempo, espresso in millisecondi, per attendere una risposta dal provider dello spazio dei nomi prima di interrompere la chiamata. Questo parametro è attualmente riservato e deve essere impostato su NULL perché un'opzione di timeout non è supportata.
[in, optional] lpOverlapped
Puntatore facoltativo a una struttura sovrapposta utilizzata per l'operazione asincrona. Questo parametro è attualmente riservato e deve essere impostato su NULL perché le operazioni asincrone non sono supportate.
[in, optional] lpCompletionRoutine
Puntatore facoltativo a una funzione da richiamare al completamento corretto per le operazioni asincrone. Questo parametro è attualmente riservato e deve essere impostato su NULL perché le operazioni asincrone non sono supportate.
[out, optional] lpNameHandle
Puntatore facoltativo usato solo per le operazioni asincrone. Questo parametro è attualmente riservato e deve essere impostato su NULL perché le operazioni asincrone non sono supportate.
In caso di esito positivo, SetAddrInfoEx restituisce NO_ERROR (0). L'errore restituisce un codice di errore Windows Sockets diverso da zero, come indicato nei codici di errore di Windows Sockets.
Codice di errore | Significato |
---|---|
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita. | |
Si è verificato un errore temporaneo nella risoluzione dei nomi. | |
È stato specificato un parametro non valido. Questo errore viene restituito se uno dei parametri riservati non è NULL. | |
Spazio buffer insufficiente disponibile. | |
Si è verificato un errore irreversibile nella risoluzione dei nomi. | |
Si è verificato un errore di allocazione della memoria. |
La funzione SetAddrInfoEx fornisce un metodo indipendente dal protocollo per registrare o annullare la registrazione di un nome e uno o più indirizzi con un provider di spazi dei nomi. Il provider dello spazio dei nomi NS_EMAIL in Windows Vista e versioni successive supporta la registrazione e la deregistrazione degli indirizzi. I provider di spazi dei nomi predefiniti NS_DNS, NS_PNRPNAME e NS_PNRPNAME non supportano attualmente la registrazione dei nomi.
Se la funzione SetAddrInfoEx viene chiamata con NS_ALL impostato come parametro dwNameSpace e il parametro lpNspId non specificato, SetAddrInfoEx tenterà di registrare o annullare la registrazione del nome e degli indirizzi associati con tutti gli spazi dei nomi installati e attivi. La funzione SetAddrInfoEx restituirà l'esito positivo se uno dei provider dello spazio dei nomi ha registrato o annullato la registrazione del nome, ma non vi sarà alcuna indicazione del provider dello spazio dei nomi riuscito o di quelli non riusciti alla richiesta.
Quando si definisce UNICODE o _UNICODE , SetAddrInfoEx viene definito su SetAddrInfoExW, la versione Unicode di questa funzione. I parametri stringa vengono definiti per il tipo di dati PWSTR .
Quando UNICODE o _UNICODE non è definito, SetAddrInfoEx viene definito su SetAddrInfoExA, la versione ANSI di questa funzione. I parametri stringa sono del tipo di dati PCSTR .
Le informazioni registrate con un provider di spazi dei nomi possono essere restituite chiamando le funzioni GetAddrInfoEx, getaddrinfo o GetAddrInfoW . La funzione GetAddrInfoEx è una versione avanzata delle funzioni getaddrinfo e GetAddrInfoW .
In Windows Vista e versioni successive, quando SetAddrInfoEx viene chiamato da un servizio, se l'operazione è il risultato di un processo utente che chiama il servizio, il servizio deve rappresentare l'utente. Ciò consente di applicare correttamente i raggruppamenti di sicurezza e routing.
Windows 8.1 e Windows Server 2012 R2: la funzione SetAddrInfoExW è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.
Nota
L'intestazione ws2tcpip.h definisce SetAddrInfoEx 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1, Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | ws2tcpip.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |