CreateProxyArpEntry 関数 (iphlpapi.h)
CreateProxyArpEnry 関数は、指定された IPv4 アドレスのプロキシ アドレス解決プロトコル (PARP) エントリをローカル コンピューターに作成します。
構文
IPHLPAPI_DLL_LINKAGE DWORD CreateProxyArpEntry(
[in] DWORD dwAddress,
[in] DWORD dwMask,
[in] DWORD dwIfIndex
);
パラメーター
[in] dwAddress
このコンピューターがプロキシとして機能する IPv4 アドレス。
[in] dwMask
dwAddress で指定された IPv4 アドレスのサブネット マスク。
[in] dwIfIndex
dwAddress によって識別される IPv4 アドレスの ARP をプロキシするインターフェイスのインデックス。 つまり、 dwAddress の ARP 要求がこのインターフェイスで受信されると、ローカル コンピューターはこのインターフェイスの物理アドレスで応答します。 このインターフェイスが PPP などの ARP をサポートしない型の場合、呼び出しは失敗します。
戻り値
関数が成功した場合、関数は NO_ERROR (ゼロ) を返します。
関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
アクセスが拒否されました。 このエラーは、Windows Vista および Windows Server 2008 で、次のようないくつかの条件で返されます。ユーザーがローカル コンピューターで必要な管理特権を持っていないか、アプリケーションが組み込みの管理者 (RunAs 管理者) として拡張シェルで実行されていません。 |
|
入力パラメーターが無効です。アクションは実行されませんでした。 このエラーは、 dwAddress パラメーターが 0 または無効な値の場合に返されます。他のパラメーターの 1 つが無効です。 |
|
IPv4 トランスポートがローカル コンピューターで構成されていません。 |
|
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。 |
解説
ARP テーブルを取得するには、 GetIpNetTable 関数を呼び出します。 既存の PARP エントリを削除するには、 DeleteProxyArpEntry を呼び出します。
Windows Vista 以降では、 CreateProxyArpEnry 関数は、Administrators グループのメンバーとしてログオンしたユーザーのみが呼び出すことができます。 Administrators グループのメンバーではないユーザーが CreateProxyArpEnry を呼び出すと、関数呼び出しは失敗し、 ERROR_ACCESS_DENIED が返されます。 この関数は、Windows Vista 以降のユーザー アカウント制御 (UAC) が原因で失敗する可能性もあります。 この関数を含むアプリケーションが、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしているユーザーによって実行された場合、 requestedExecutionLevel が requireAdministrator に設定されたマニフェスト ファイルでアプリケーションがマークされていない限り、この呼び出しは失敗します。 Windows Vista 以降のアプリケーションにこのマニフェスト ファイルがない場合、組み込みの Administrator 以外の Administrators グループのメンバーとしてログオンしたユーザーは、この関数を成功させるために、組み込みの Administrator (RunAs 管理者) として拡張シェルでアプリケーションを実行する必要があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | iphlpapi.h |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |