次の方法で共有


FwpmSubLayerSubscribeChanges0 関数 (fwpmu.h)

FwpmSubLayerSubscribeChanges0 関数は、特定のサブレイヤーの変更に関する通知の配信を要求するために使用されます。

構文

DWORD FwpmSubLayerSubscribeChanges0(
  [in]           HANDLE                            engineHandle,
  [in]           const FWPM_SUBLAYER_SUBSCRIPTION0 *subscription,
  [in]           FWPM_SUBLAYER_CHANGE_CALLBACK0    callback,
  [in, optional] void                              *context,
  [out]          HANDLE                            *changeHandle
);

パラメーター

[in] engineHandle

型: HANDLE

フィルター エンジンへの開いているセッションのハンドル。 FwpmEngineOpen0 を呼び出して、フィルター エンジンへのセッションを開きます。

[in] subscription

種類: FWPM_SUBLAYER_SUBSCRIPTION0*

配信する通知。

[in] callback

種類: FWPM_SUBLAYER_CHANGE_CALLBACK0

通知を配信する準備ができたときに呼び出される関数ポインター。

[in, optional] context

型: void*

省略可能なコンテキスト ポインター。 このポインターは、変更の詳細と共に コールバック 関数に渡されます。

[out] changeHandle

種類: HANDLE*

新しく作成されたサブスクリプションを処理します。

戻り値

型: DWORD

リターン コード/値 Description
ERROR_SUCCESS
0
サブスクリプションが正常に作成されました。
FWP_E_* エラー コード
0x80320001 — 0x80320039
Windows フィルタリング プラットフォーム (WFP) 固有のエラー。 詳細については、「 WFP エラー コード 」を参照してください。
RPC_* エラー コード
0x80010001 — 0x80010122
リモートまたはローカルのファイアウォール エンジンとの通信に失敗しました。

解説

サブスクライバーは、サブスクライブに使用されたのと同じセッション ハンドルで行われた変更に関する通知を受け取りません。 これは、サブスクライバーは自分で行った変更を既に把握しているため、他のユーザーが行った変更のみを表示する必要があるためです。

この関数は、トランザクション内から呼び出すことはできません。 FWP_E_TXN_IN_PROGRESSで失敗します。 トランザクションの詳細については、「 オブジェクト管理 」を参照してください。

呼び出し元は サブレイヤーのコンテナーにFWPM_ACTRL_SUBSCRIBEアクセスし、サブレイヤーへのアクセス をFWPM_ACTRL_READ する必要があります。 サブスクライバーは 、FWPM_ACTRL_READアクセス 権を持つサブレイヤーについてのみ通知を受け取ります。 詳細については、「Access Control」を参照してください。

FwpmSubLayerSubscribeChanges0 は、FwpmSubLayerSubscribeChanges の特定の実装です。 詳細については、「 WFP Version-Independent 名と特定のバージョンの Windows を対象 とする」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー fwpmu.h
Library Fwpuclnt.lib
[DLL] Fwpuclnt.dll

関連項目

FWPM_SUBLAYER_CHANGE_CALLBACK0

FWPM_SUBLAYER_SUBSCRIPTION0