Condividi tramite


Funzione WSAEnumNameSpaceProvidersExA (winsock2.h)

La funzione WSAEnumNameSpaceProvidersEx recupera informazioni sui provider di spazi dei nomi disponibili.

Sintassi

INT WSAAPI WSAEnumNameSpaceProvidersExA(
  [in, out] LPDWORD                lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOEXA lpnspBuffer
);

Parametri

[in, out] lpdwBufferLength

In caso di input, il numero di byte contenuti nel buffer a cui punta lpnspBuffer. Nell'output (se la funzione ha esito negativo e l'errore è WSAEFAULT), il numero minimo di byte da allocare per il buffer lpnspBuffer per consentire il recupero di tutte le informazioni richieste. Il buffer passato a WSAEnumNameSpaceProvidersEx deve essere sufficiente per contenere tutte le informazioni sullo spazio dei nomi.

[out] lpnspBuffer

Buffer riempito con strutture WSANAMESPACE_INFOEX. Le strutture restituite si trovano consecutivamente all'inizio del buffer. Le informazioni sulle dimensioni delle variabili a cui fanno riferimento i puntatori nelle strutture puntano alle posizioni all'interno del buffer che si trovano tra la fine delle strutture a dimensione fissa e la fine del buffer. Il numero di strutture compilate è il valore restituito di WSAEnumNameSpaceProvidersEx.

Valore restituito

La funzione WSAEnumNameSpaceProvidersEx restituisce il numero di strutture WSANAMESPACE_INFOEX copiate in lpnspBuffer. In caso contrario, viene restituito il valore SOCKET_ERROR e un numero di errore specifico può essere recuperato chiamando WSAGetLastError.

Codice di errore Significato
WSAEFAULT
Il parametro lpnspBuffer era un puntatore NULL null o la lunghezza del buffer, lpdwBufferLength, era troppo piccolo per ricevere tutte le strutture WSANAMESPACE_INFOEX pertinenti e le informazioni associate. Quando viene restituito questo errore, la lunghezza del buffer richiesta viene restituita nel parametro lpdwBufferLength.
WSANOTINITIALISED
Il WS2_32.DLL non è stato inizializzato. L'applicazione deve prima chiamare WSAStartup prima di chiamare qualsiasi funzione Windows Sockets.
WSA_NOT_ENOUGH_MEMORY
Memoria insufficiente per eseguire l'operazione.

Osservazioni

La funzione WSAEnumNameSpaceProvidersEx è una versione avanzata della funzione WSAEnumNameSpaceProviders. Il BLOB di dati specifico del provider associato alla voce dello spazio dei nomi passato nel parametro lpProviderInfo alla funzione WSCInstallNameSpaceEx può essere eseguita una query usando funzione WSAEnumNameSpaceProvidersEx.

Attualmente, l'unico provider di spazi dei nomi incluso in Windows che imposta le informazioni nel ProviderSpecific membro della struttura WSANAMESPACE_INFOEX è il provider di NS_EMAIL. Il formato del membro providerSpecific per un provider di spazi dei nomi NS_EMAIL è una struttura NAPI_PROVIDER_INSTALLATION_BLOB.

Quando viene definito UNICODE o _UNICODE, WSAEnumNameSpaceProvidersEx viene definito per WSAEnumNameSpaceProvidersExW, la versione Unicode di questa funzione. Il parametro lpnspBuffer viene definito per il tipo di dati LPSAWSANAMESPACE_INFOEXW e le strutture WSANAMESPACE_INFOEXW vengono restituite in caso di esito positivo.

Quando UNICODE o _UNICODE non è definito, WSAEnumNameSpaceProvidersEx viene definito per WSAEnumNameSpaceProvidersExA, la versione ANSI di questa funzione. Il parametro lpnspBuffer viene definito per il tipo di dati LPSAWSANAMESPACE_INFOEXA e le strutture WSANAMESPACE_INFOEXA vengono restituite in caso di esito positivo.

windows 8.1 e windows Server 2012 R2: la funzione WSAEnumNameSpaceProvidersExW è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Nota

L'intestazione winsock2.h definisce WSAEnumNameSpaceProvidersEx 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 8.1, Windows Vista [app desktop | App UWP]
server minimo supportato Windows Server 2008 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione winsock2.h
libreria Ws2_32.lib
dll Ws2_32.dll

Vedere anche

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32