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 |
---|---|
Il buffer AddressString specificato è troppo piccolo. Passare un buffer più grande. | |
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 |