LPWSPSTRINGTOADDRESS コールバック関数 (ws2spi.h)
WSPStringToAddress 関数は、人間が判読できる数値文字列を、このような構造体を受け取る Windows ソケット ルーチンに渡すのに適したソケット アドレス構造 (sockaddr) に変換します。 アドレスの欠落しているコンポーネントは、可能であれば、適切な値に既定で設定されます。 たとえば、不足しているポート番号の既定値は 0 です。
構文
LPWSPSTRINGTOADDRESS Lpwspstringtoaddress;
INT Lpwspstringtoaddress(
[in] LPWSTR AddressString,
[in] INT AddressFamily,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[out] LPSOCKADDR lpAddress,
[in, out] LPINT lpAddressLength,
[out] LPINT lpErrno
)
{...}
パラメーター
[in] AddressString
変換する、人間が読み取り可能な 0 で終わる文字列へのポインター。
[in] AddressFamily
文字列が属するファミリにアドレスを指定するか、不明な場合はAF_UNSPECします。
[in] lpProtocolInfo
(必須)プロバイダーの WSAProtocol_Info 構造。
[out] lpAddress
1 つの sockaddr 構造体で埋められたバッファー。
[in, out] lpAddressLength
アドレス バッファーの長さ (バイト単位)。 結果の sockaddr 構造体のサイズを返します。 指定されたバッファーのサイズが十分でない場合、 関数は WSAEFAULT の特定のエラーで失敗し、このパラメーターは必要なサイズ (バイト単位) で更新されます。
[out] lpErrno
エラー コードへのポインター。
戻り値
エラーが発生しない場合、 WSPStringToAddress は 0 を返します。 それ以外の場合は、SOCKET_ERRORの値が返され、 lpErrno で特定のエラー コードを使用できます。
エラー コード | 意味 |
---|---|
指定されたアドレス バッファーが小さすぎるため、より大きなバッファーを渡します。 | |
文字列を sockaddr に変換できないか、プロバイダーが指定されたアドレス ファミリをサポートできなかったか、指定された lpProtocolInfo がプロバイダーによってサポートされている WSAProtocol_Info 構造を参照していません。 |
注釈
階層型サービス プロバイダーは、この関数の実装を提供しますが、プロトコル チェーン内の次のレイヤーの WSPStringToAddress を呼び出す場合も、この関数のクライアントです。 この関数の lpProtocolInfo パラメーターは、プロトコル チェーンのレイヤーを介して伝達されるため、いくつかの特別な考慮事項が適用されます。
プロトコル チェーン内の次のレイヤーが別のレイヤーである場合、次のレイヤーの WSPStringToAddress が呼び出されると、このレイヤーは、同じ変更されていないチェーン情報を持つ同じ変更されていないWSAProtocol_Info構造を参照する lpProtocolInfo を次のレイヤーに渡す必要があります。 ただし、次のレイヤーが基本プロトコル (つまり、チェーン内の最後の要素) である場合、このレイヤーは、ベース プロバイダーの WSPStringToAddress を呼び出すときに置換を実行します。 この場合、ベース プロバイダーの WSAPROTOCOL_INFO 構造体は lpProtocolInfo パラメーターによって参照する必要があります。
このポリシーの重要な利点の 1 つは、基本サービス プロバイダーがプロトコル チェーンを認識する必要ができないことです。
この同じ伝達ポリシーは、LPWSPAddressToString、LPWSPDuplicateSocket、WSPStartup、LPWSPSocket などの他の関数の階層化されたシーケンスを介してWSAProtocol_Info構造体を伝達する場合に適用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ws2spi.h |