次の方法で共有


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 で特定のエラー コードを使用できます。

エラー コード 意味
WSAEFAULT
指定されたアドレス バッファーが小さすぎるため、より大きなバッファーを渡します。
WSAEINVAL
文字列を sockaddr に変換できないか、プロバイダーが指定されたアドレス ファミリをサポートできなかったか、指定された lpProtocolInfo がプロバイダーによってサポートされている WSAProtocol_Info 構造を参照していません。
 
 

注釈

階層型サービス プロバイダーは、この関数の実装を提供しますが、プロトコル チェーン内の次のレイヤーの WSPStringToAddress を呼び出す場合も、この関数のクライアントです。 この関数の lpProtocolInfo パラメーターは、プロトコル チェーンのレイヤーを介して伝達されるため、いくつかの特別な考慮事項が適用されます。

プロトコル チェーン内の次のレイヤーが別のレイヤーである場合、次のレイヤーの WSPStringToAddress が呼び出されると、このレイヤーは、同じ変更されていないチェーン情報を持つ同じ変更されていないWSAProtocol_Info構造を参照する lpProtocolInfo を次のレイヤーに渡す必要があります。 ただし、次のレイヤーが基本プロトコル (つまり、チェーン内の最後の要素) である場合、このレイヤーは、ベース プロバイダーの WSPStringToAddress を呼び出すときに置換を実行します。 この場合、ベース プロバイダーの WSAPROTOCOL_INFO 構造体は lpProtocolInfo パラメーターによって参照する必要があります。

このポリシーの重要な利点の 1 つは、基本サービス プロバイダーがプロトコル チェーンを認識する必要ができないことです。

この同じ伝達ポリシーは、LPWSPAddressToStringLPWSPDuplicateSocketWSPStartupLPWSPSocket などの他の関数の階層化されたシーケンスを介してWSAProtocol_Info構造体を伝達する場合に適用されます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ws2spi.h

こちらもご覧ください

WSAProtocol_Info

LPWSPDuplicateSocket

LPWSPSocket

WSPStartup

Sockaddr