PFN_FWUPDATEDYNAMICKEYWORDADDRESS0
コールバックシグネチャ
DWORD PFN_FWUPDATEDYNAMICKEYWORDADDRESS0(
GUID dynamicKeywordAddressId,
LPWSTR updatedAddresses,
BOOL append
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| dynamicKeywordAddressId | GUID | 更新する動的キーワードアドレスオブジェクトの ID です。 |
| updatedAddresses | LPWSTR | オブジェクトの更新に使用する、IP アドレス、サブネット、または範囲のコンマ区切りのリストです。 |
| append | BOOL | TRUE を設定すると、updatedAddresses はオブジェクトの現在のアドレスリストに追加されます。FALSE を設定すると、updatedAddresses はオブジェクトの現在のアドレスリストを置き換えます。 |
公式ドキュメント
入力された ID を持つ動的キーワードアドレスを更新するために呼び出す、サービス内のエントリポイントの関数ポインター型です。
このフリー関数のポインター型は NetFw.h を通じて公開されていますが、静的リンクライブラリは公開されていません。この関数を呼び出すには、LoadLibraryExW/GetProcAddress のパターンを使用してください。
GetProcAddress を呼び出すときは、firewallapi.dll モジュールのハンドルを渡し、lpProcName 引数には FWFreeDynamicKeywordAddressData0 を渡します。
詳細情報とコード例については、Firewall dynamic keywords を参照してください。
戻り値
型: DWORD
関数が成功した場合 (オブジェクトが正常に更新された場合)、ERROR_SUCCESS を返します。それ以外の場合は、次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| ERROR_ACCESS_DENIED | 指定された ID のオブジェクトを操作するための適切なアクセス許可を呼び出し元が持っていません。このエラーは、MDM によって管理される non-AutoResolve オブジェクトに対してこの API を呼び出した場合に発生します。 |
| ERROR_INVALID_PARAMETER | 一般的なエラー条件は次のとおりです: 指定された ID のオブジェクトが存在しない、アドレスの形式が無効である。 |
解説(Remarks)
append が TRUE の場合、入力されたアドレスはオブジェクトの現在のアドレスリストに追加されます。入力パラメーターがオブジェクトに既に設定されているアドレスと重複している場合、そのアドレスは破棄され、ERROR_SUCCESS が返されます。
ファイアウォールサービスは、アドレスが動的キーワードアドレスの既存のアドレスフィールドにある値と完全に等価である場合に、そのアドレスを重複と見なします。重複の判定は個々の要素単位で行われるため、IP アドレスのリストによる更新では、入力の一部だけが重複として破棄されることもあります。たとえば、動的キーワードアドレスオブジェクトが 127.0.0.0-127.0.0.255 を含んでいる場合、127.0.0.0-127.0.0.255 または 127.0.0.0/24 という入力は破棄されます。一方、127.0.0.0-127.0.0.40 のような入力は、部分集合であって直接の重複ではないため、破棄されません。
append が FALSE の場合、オブジェクトの現在のアドレスリストは入力によって上書きされます。
MDM を発生源とする non-AutoResolve オブジェクトの場合は ERROR_ACCESS_DENIED になります。
ローカルで (API または PowerShell を通じて) 作成された non-AutoResolve オブジェクトは、この API で更新できます。
発生源を問わず、AutoResolve オブジェクトはこの API で更新できます。
オブジェクトのアドレスをクリアするには、updatedAddresses の値として NULL を渡します。
updatedAddresses パラメーターの有効な形式は、IP アドレストークンのコンマ区切りのリストです。トークンには、個々の IP アドレス、範囲、またはサブネットを指定できます。有効なトークンの形式は次のとおりです:
- 有効な IPv4 アドレス (例: 10.0.0.10)
- 有効な IPv6 アドレス (例: 2620:1ec:c11::200)
- <開始アドレス>-<終了アドレス> 形式の IPv4 アドレス範囲 (スペースは含めません。例: 10.0.0.0-10.0.0.255)
- <開始アドレス>-<終了アドレス> 形式の IPv6 アドレス範囲 (スペースは含めません。例: 2001:db8:abcd:12::-2001:db8:abcd:12:ffff:ffff:ffff:ffff)
- ネットワークプレフィックス表記で指定された有効な IPv4 サブネット (例: 10.0.0.0/24)
- プレフィックス長表記で指定された有効な IPv6 サブネット (例: 2001:db8:abcd:0012::0/64)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)