次の方法で共有


FwpmEngineGetSecurityInfo0 関数 (fwpmu.h)

FwpmEngineGetSecurityInfo0 関数は、フィルター エンジンのセキュリティ記述子のコピーを取得します。

構文

DWORD FwpmEngineGetSecurityInfo0(
  [in]            HANDLE               engineHandle,
  [in]            SECURITY_INFORMATION securityInfo,
  [out, optional] PSID                 *sidOwner,
  [out, optional] PSID                 *sidGroup,
  [out, optional] PACL                 *dacl,
  [out, optional] PACL                 *sacl,
  [out]           PSECURITY_DESCRIPTOR *securityDescriptor
);

パラメーター

[in] engineHandle

型: HANDLE

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

[in] securityInfo

種類: SECURITY_INFORMATION

取得するセキュリティ情報の種類。

[out, optional] sidOwner

種類: PSID*

返されたセキュリティ記述子の所有者セキュリティ識別子 (SID)。

[out, optional] sidGroup

種類: PSID*

返されたセキュリティ記述子のプライマリ グループ セキュリティ識別子 (SID)。

[out, optional] dacl

種類: PACL*

返されたセキュリティ記述子の随意アクセス制御リスト (DACL)。

[out, optional] sacl

種類: PACL*

返されたセキュリティ記述子のシステム アクセス制御リスト (SACL)。

[out] securityDescriptor

種類: PSECURITY_DESCRIPTOR*

返されたセキュリティ記述子。

戻り値

型: DWORD

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

解説

返される securityDescriptor パラメーターは 、FwpmFreeMemory0 の呼び出しを通じて解放する必要があります。 他の 4 つの (省略可能) 返されるパラメーターは、 securityDescriptor パラメーター内のアドレスを指しているため、解放しないでください。

この関数は、標準の Win32 GetSecurityInfo 関数と同様に動作します。 呼び出し元には、 GetSecurityInfo リファレンス トピックで説明されているのと同じ標準アクセス権が必要です。

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

次の C++ の例は、 FwpmEngineGetSecurityInfo0 を使用したセキュリティ記述子オブジェクトの初期化を示しています。

#include <windows.h>
#include <fwpmu.h>
#include <stdio.h>

#pragma comment(lib, "Fwpuclnt.lib")

void main()
{
    HANDLE engineHandle = NULL;
    DWORD  result = ERROR_SUCCESS;

    PSECURITY_DESCRIPTOR securityDescriptor;
    SECURITY_INFORMATION securityInfo = OWNER_SECURITY_INFORMATION;

    // Several functions that use the SECURITY_DESCRIPTOR structure require that this 
    // structure be aligned on a valid pointer boundary in memory. These boundaries 
    // vary depending on the type of processor used. 

    securityDescriptor = (PSECURITY_DESCRIPTOR) malloc(sizeof(SECURITY_DESCRIPTOR));

    result = FwpmEngineOpen0( NULL, RPC_C_AUTHN_WINNT, NULL, NULL, &engineHandle );
    if (result != ERROR_SUCCESS)
    {
        printf("FwpmEngineOpen0 failed.\n");
        return;
    }
    
    result = FwpmEngineGetSecurityInfo0(
                 engineHandle, 
                 securityInfo,
                 NULL,
                 NULL,
                 NULL,
                 NULL,
                 &securityDescriptor);

    if (result != ERROR_SUCCESS)
    {
        printf("FwpmEngineGetSecurityInfo0 failed.\n");
        return;
    }

    return;
}

要件

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

関連項目

FwpmEngineSetSecurityInfo0