Share via


NetworkIsolationGetAppContainerConfig 関数 (networkisolation.h)

NetworkIsolationGetAppContainerConfig 関数は、1 つ以上のアプリ コンテナーに関する構成情報を取得するために使用されます。

構文

DWORD NetworkIsolationGetAppContainerConfig(
  [out] DWORD               *pdwNumPublicAppCs,
  [out] PSID_AND_ATTRIBUTES *appContainerSids
);

パラメーター

[out] pdwNumPublicAppCs

型: DWORD*

appContainerSids メンバー内のアプリ コンテナーの数。

[out] appContainerSids

種類: PSID_AND_ATTRIBUTES*

ループバック トラフィックの送信が許可されているアプリ コンテナーのセキュリティ識別子 (SID)。 デバッグ目的で使用されます。

戻り値

型: DWORD

成功した場合はERROR_SUCCESS、それ以外の場合はエラー値を返します。

注釈

PSID_AND_ATTRIBUTES構造体に関連付けられているメモリを解放するのは、呼び出し元プログラムの責任であることに注意してください。 次のコード サンプルは、この関数を呼び出す方法を示しています。 FreeAppContainerConfig 関数は、関連付けられているすべてのメモリを解放する方法を示します。


#include "stdafx.h"
#include <netfw.h>

typedef DWORD
(WINAPI *FN_NETWORKISOLATIONGETAPPCONTAINERCONFIG)(
    _Out_ DWORD *pdwNumPublicAppCs,
    _Outptr_result_buffer_(*pdwNumPublicAppCs) PSID_AND_ATTRIBUTES *appContainerSids
    );

void
FreeAppContainerConfig(
    __in DWORD sidCount,
    __in_ecount(sidCount) SID_AND_ATTRIBUTES *srcSidAttrib
    )
{
    DWORD dwIndex = 0;

    for (dwIndex = 0; dwIndex < sidCount; dwIndex++)
    {
        HeapFree(GetProcessHeap(), 0, srcSidAttrib[dwIndex].Sid);
    }

    HeapFree(GetProcessHeap(), 0, srcSidAttrib);
}

int _tmain(int argc, _TCHAR* argv[])
{
    DWORD dwErr = 0;
    PSID_AND_ATTRIBUTES appContainerSids = NULL;
    DWORD dwCount = 0;
    HMODULE hModule = NULL;
    FN_NETWORKISOLATIONGETAPPCONTAINERCONFIG pfnNetworkIsolationGetAppContainerConfig = NULL;

    hModule = LoadLibraryW(L"FirewallAPI.dll");
    if (hModule == NULL)
    {
        dwErr = GetLastError();
        goto Cleanup;
    }

    pfnNetworkIsolationGetAppContainerConfig = (FN_NETWORKISOLATIONGETAPPCONTAINERCONFIG)GetProcAddress(
        hModule, 
        "NetworkIsolationGetAppContainerConfig"
        );
    if (pfnNetworkIsolationGetAppContainerConfig == NULL)
    {
        dwErr = GetLastError();
        goto Cleanup;
    }

    dwErr = pfnNetworkIsolationGetAppContainerConfig(
        &dwCount, 
        &appContainerSids
        );
    if (dwErr != ERROR_SUCCESS)
    {
        goto Cleanup;
    }

    // Process the app container sids

Cleanup:

    FreeAppContainerConfig(
        dwCount, 
        appContainerSids
        );

    if (hModule != NULL)
    {
        FreeLibrary(hModule);
    }

	return 0;
}

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー networkisolation.h (Netfw.h を含む)
[DLL] Firewallapi.dll