SetAddrInfoExA 関数 (ws2tcpip.h)
SetAddrInfoEx 関数は、名前、サービス名、および関連付けられているアドレスを特定の名前空間プロバイダーに登録または登録解除します。
構文
INT WSAAPI SetAddrInfoExA(
[in] PCSTR pName,
[in] PCSTR pServiceName,
[in, out] SOCKET_ADDRESS *pAddresses,
[in] DWORD dwAddressCount,
[in, optional] LPBLOB lpBlob,
[in] DWORD dwFlags,
[in] DWORD dwNameSpace,
[in, optional] LPGUID lpNspId,
[in, optional] timeval *timeout,
[in, optional] LPOVERLAPPED lpOverlapped,
[in, optional] LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
[out, optional] LPHANDLE lpNameHandle
);
パラメーター
[in] pName
アドレスを登録または登録解除する名前を含む NULL-terminated 文字列へのポインター。 名前空間プロバイダーに固有のこのパラメーターの解釈。
[in] pServiceName
登録されている名前に関連付けられたサービス名を含む、省略可能な NULL-terminated 文字列へのポインター。 このパラメーターの解釈は、名前空間プロバイダーに固有です。
[in, out] pAddresses
名前空間プロバイダーに登録するアドレスの省略可能なリストへのポインター。
[in] dwAddressCount
pAddresses パラメーター
[in, optional] lpBlob
アドレスの一覧を超えて、pName パラメーターに関連付けられているプロバイダー固有の名前空間情報を設定するために使用されるデータへの省略可能なポインター。 pAddresses パラメーターで渡すことができない情報は、lpBlob パラメーターで渡すことができます。 この情報の形式は、名前空間プロバイダーに固有です。
[in] dwFlags
pName パラメーターと pServiceName パラメーターを名前空間プロバイダーに登録する方法を制御するフラグのセット。 この情報の解釈は、名前空間プロバイダーに固有です。
[in] dwNameSpace
この情報を登録する名前空間プロバイダーを決定する名前空間識別子。 特定の名前空間識別子を渡すと、この情報は、指定された名前空間をサポートする名前空間プロバイダーにのみ登録されます。 NS_ALLを指定すると、インストールされているすべての名前空間プロバイダーとアクティブな名前空間プロバイダーに情報が登録されます。
dwNameSpace パラメーターのオプションは、Winsock2.h インクルード ファイルに一覧表示されます。 Windows Vista 以降には、いくつかの名前空間プロバイダーが含まれています。 他の名前空間プロバイダーをインストールできるため、次の使用可能な値は一般的に使用可能な値のみです。 他にも多くの可能性があります。
[in, optional] lpNspId
複数の名前空間プロバイダーが 1 つの名前空間 (NS_DNS など) に登録されている場合に、この情報を登録する特定の名前空間プロバイダーの省略可能な GUID へのポインター。 特定の名前空間プロバイダーの GUID を渡すと、指定した名前空間プロバイダーにのみ情報が登録されます。 WSAEnumNameSpaceProviders 関数を呼び出して、名前空間プロバイダーの GUID を取得できます。
[in, optional] timeout
呼び出しを中止する前に名前空間プロバイダーからの応答を待機する時間 (ミリ秒単位) を示す省略可能なパラメーター。 このパラメーターは現在予約されており、
[in, optional] lpOverlapped
非同期操作に使用される重複する構造体への省略可能なポインター。 このパラメーターは現在予約されており、非同期操作はサポートされていないため、NULL に設定する必要があります。
[in, optional] lpCompletionRoutine
非同期操作の正常完了時に呼び出される関数への省略可能なポインター。 このパラメーターは現在予約されており、非同期操作はサポートされていないため、NULL に設定する必要があります。
[out, optional] lpNameHandle
非同期操作にのみ使用される省略可能なポインター。 このパラメーターは現在予約されており、非同期操作はサポートされていないため、NULL に設定する必要があります。
戻り値
成功した場合、SetAddrInfoEx
エラー コード | 意味 |
---|---|
|
WSAStartup 呼び出し |
名前解決で一時的なエラーが発生しました。 | |
|
無効なパラメーターが指定されました。 このエラーは、予約されたパラメーターのいずれかが NULL |
|
バッファー領域が不足しています。 |
名前解決で回復不可能なエラーが発生しました。 | |
メモリ割り当てエラーが発生しました。 |
備考
SetAddrInfoEx 関数は、名前と 1 つ以上のアドレスを名前空間プロバイダーに登録または登録解除するためのプロトコルに依存しないメソッドを提供します。 Windows Vista 以降の NS_EMAIL 名前空間プロバイダーでは、アドレスの登録と登録解除がサポートされています。 既定のNS_DNS、NS_PNRPNAME、およびNS_PNRPNAME名前空間プロバイダーは、現在、名前の登録をサポートしていません。
UNICODE または
UNICODE または
名前空間プロバイダーに登録されている情報は、
Windows Vista 以降では、SetAddrInfoEx がサービスから呼び出されたときに、操作がサービスを呼び出すユーザー プロセスの結果である場合、サービスはユーザーを偽装する必要があります。 これは、セキュリティコンパートメントとルーティングコンパートメントを適切に適用できるようにするためです。
手記
ws2tcpip.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetAddrInfoEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1、Windows Vista [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2008 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | ws2tcpip.h |
ライブラリ | Ws2_32.lib |
DLL | Ws2_32.dll |
関連項目
GetAddrInfoEx を
GetAddrInfoW の
WSAEnumNameSpaceProviders の
WSAGetLastError の
getaddrinfo を