Condividi tramite


Funzione di callback LPWSPADDRESSTOSTRING (ws2spi.h)

La funzione LPWSPAddressToString converte tutti i componenti di una struttura sockaddr in una rappresentazione numerica leggibile dell'indirizzo. Questa operazione viene usata principalmente per scopi di visualizzazione.

Sintassi

LPWSPADDRESSTOSTRING Lpwspaddresstostring;

INT Lpwspaddresstostring(
  [in]      LPSOCKADDR lpsaAddress,
  [in]      DWORD dwAddressLength,
  [in]      LPWSAPROTOCOL_INFOW lpProtocolInfo,
  [out]     LPWSTR lpszAddressString,
  [in, out] LPDWORD lpdwAddressStringLength,
  [out]     LPINT lpErrno
)
{...}

Parametri

[in] lpsaAddress

Puntatore a una struttura sockaddr da tradurre in una stringa.

[in] dwAddressLength

Lunghezza dell'indirizzo di sockaddr, in byte.

[in] lpProtocolInfo

(obbligatorio) WSAProtocol_Info struttura associata al provider che eseguirà la traduzione.

[out] lpszAddressString

Buffer che riceve la stringa di indirizzo leggibile..

[in, out] lpdwAddressStringLength

Lunghezza del buffer AddressString , in byte. Restituisce la lunghezza della stringa effettivamente copiata nel buffer. Se il buffer fornito non è sufficiente, la funzione ha esito negativo con un errore specifico di WSAEFAULT e questo parametro viene aggiornato con le dimensioni necessarie, in byte.

[out] lpErrno

Puntatore al codice di errore.

Valore restituito

Se non si verifica alcun errore, LPWSPAddressToString restituisce zero. In caso contrario, restituisce SOCKET_ERROR e un codice di errore specifico è disponibile in lpErrno.

Codice di errore Significato
WSAEFAULT
Il buffer AddressString specificato è troppo piccolo. Passare un buffer più grande.
WSAEINVAL
L'indirizzo specificato non è un indirizzo socket valido o la relativa famiglia di indirizzi non è supportata dal provider oppure lpProtocolInfo specificato non fa riferimento a una struttura WSAProtocol_Info supportata dal provider.
 
 

Commenti

Un provider di servizi a livelli fornisce un'implementazione di questa funzione, ma è anche un client di questa funzione se e quando chiama LPWSPAddressToString del livello successivo nella catena di protocolli. Alcune considerazioni speciali si applicano al parametro lpProtocolInfo man mano che viene propagato verso il basso attraverso i livelli della catena di protocolli.

Se il livello successivo della catena di protocolli è un altro livello, quando viene chiamato LPWSPAddressToString del livello successivo, questo livello deve passare al livello successivo un parametro lpProtocolInfo che fa riferimento alla stessa struttura WSAProtocol_Info non modificata con le stesse informazioni sulla catena non modificata. Tuttavia, se il livello successivo è il protocollo di base , ovvero l'ultimo elemento della catena, questo livello esegue una sostituzione quando si chiama LPWSPAddressToString del provider di base. In questo caso, la struttura di WSAPROTOCOL_INFO del provider di base deve essere a cui fa riferimento il parametro lpProtocolInfo . Un vantaggio fondamentale di questa politica è che i provider di servizi di base non devono essere consapevoli delle catene di protocolli.

Questo stesso criterio di propagazione si applica quando si propaga una struttura WSAProtocol_Info tramite una sequenza a livelli di altre funzioni, ad esempio LPWSPDuplicateSocket, WSPStartup, LPWSPSocket o LPWSPStringToAddress.

Requisiti

Requisito Valore
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

WSAProtocol_Info

WSPDucplicateSocket

LPWSPSocket

WSPStartup

sockaddr