LPWSPSTRINGTOADDRESS-Rückruffunktion (ws2spi.h)
Die WSPStringToAddress-Funktion konvertiert eine für Menschen lesbare numerische Zeichenfolge in eine Socketadressstruktur (sockaddr), die für die Übergabe an Windows Sockets-Routinen geeignet ist, die eine solche Struktur annehmen. Alle fehlenden Komponenten der Adresse werden nach Möglichkeit standardmäßig auf einen angemessenen Wert festgelegt. Beispielsweise ist eine fehlende Portnummer standardmäßig 0.
Syntax
LPWSPSTRINGTOADDRESS Lpwspstringtoaddress;
INT Lpwspstringtoaddress(
[in] LPWSTR AddressString,
[in] INT AddressFamily,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[out] LPSOCKADDR lpAddress,
[in, out] LPINT lpAddressLength,
[out] LPINT lpErrno
)
{...}
Parameter
[in] AddressString
Zeiger auf die zu konvertierende, von Menschen lesbare Zeichenfolge, die null beendet ist.
[in] AddressFamily
Adressfamilie, zu der die Zeichenfolge gehört, oder AF_UNSPEC, wenn sie unbekannt ist.
[in] lpProtocolInfo
(erforderlich) Die WSAProtocol_Info-Struktur des Anbieters.
[out] lpAddress
Puffer, der mit einer einzelnen Sockaddr-Struktur gefüllt ist.
[in, out] lpAddressLength
Länge des Adresspuffers in Bytes. Gibt die Größe der resultierenden Sockaddr-Struktur zurück. Wenn der bereitgestellte Puffer nicht groß genug ist, schlägt die Funktion mit einem bestimmten Fehler von WSAEFAULT fehl, und dieser Parameter wird mit der erforderlichen Größe in Bytes aktualisiert.
[out] lpErrno
Zeiger auf den Fehlercode.
Rückgabewert
Wenn kein Fehler auftritt, gibt WSPStringToAddress null zurück. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode ist in lpErrno verfügbar.
Fehlercode | Bedeutung |
---|---|
Der angegebene Adresspuffer ist zu klein, übergeben Sie einen größeren Puffer. | |
Die Zeichenfolge konnte nicht in einen Sockaddr übersetzt werden, oder der Anbieter konnte die angegebene Adressfamilie nicht unterstützen, oder der angegebene lpProtocolInfo verweist nicht auf eine WSAProtocol_Info Struktur, die vom Anbieter unterstützt wird. |
Hinweise
Ein mehrschichtige Dienstanbieter stellt eine Implementierung dieser Funktion bereit, ist aber auch ein Client dieser Funktion, wenn er WSPStringToAddress der nächsten Ebene in der Protokollkette aufruft. Einige besondere Aspekte gelten für den lpProtocolInfo-Parameter dieser Funktion, da er über die Ebenen der Protokollkette nach unten weitergegeben wird.
Wenn die nächste Ebene in der Protokollkette eine andere Ebene ist, muss diese Ebene beim Aufruf der WSPStringToAddress der nächsten Ebene eine lpProtocolInfo an die nächste Ebene übergeben, die auf dieselbe unveränderte WSAProtocol_Info Struktur mit den gleichen unveränderten Ketteninformationen verweist. Wenn die nächste Ebene jedoch das Basisprotokoll (d. h. das letzte Element in der Kette) ist, führt diese Ebene beim Aufrufen der WSPStringToAddress des Basisanbieters eine Ersetzung durch. In diesem Fall sollte der lpProtocolInfo-Parameter auf die WSAPROTOCOL_INFO Struktur des Basisanbieters verweisen.
Ein wesentlicher Vorteil dieser Richtlinie ist, dass die Basisdienstanbieter keine Protokollketten kennen müssen.
Die gleiche Weitergaberichtlinie gilt beim Verteilen einer WSAProtocol_Info-Struktur über eine mehrschichtige Sequenz anderer Funktionen wie LPWSPAddressToString, LPWSPDuplicateSocket, WSPStartup oder LPWSPSocket.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ws2spi.h |