_FX BOOLEAN File_BlockInternetAccess(PROCESS *proc)
{
    BOOLEAN is_open, is_closed;
    BOOLEAN ok;

    //
    // is this process excempted from the blocade
    //

	if (proc->AllowInternetAccess)
		return TRUE;

    //
    // should we warn on access to internet resources
    //

    proc->file_warn_internet = Conf_Get_Boolean(
        proc->box->name, L"NotifyInternetAccessDenied", 0, TRUE);

    if (proc->image_sbie)
        proc->file_warn_internet = FALSE;

    //
    // add Internet devices if ClosedFilePath=InternetAccessDevices
    //

    Process_MatchPath(
        proc->pool, L"InternetAccessDevices", 21,
        NULL, &proc->closed_file_paths,
        &is_open, &is_closed);

    ok = TRUE;

    if (is_closed) {

        //
        // if the configuration specifies to block the pseudo Internet
        // device, add real Internet devices.  keep in sync with the
        // list of devices in File_Api_CheckInternetAccess
        //

        if (ok)         // \Device\RawIp6
            ok = File_BlockInternetAccess2(proc, File_RawIp, 0);

        if (ok)         // \Device\RawIp4
            ok = File_BlockInternetAccess2(proc, File_RawIp, -1);

        if (ok)         // \Device\Http\*
            ok = File_BlockInternetAccess2(proc, File_Http, +1);

        if (ok)         // \Device\Tcp6
            ok = File_BlockInternetAccess2(proc, File_Tcp, 0);

        if (ok)         // \Device\Tcp4
            ok = File_BlockInternetAccess2(proc, File_Tcp, -1);

        if (ok)         // \Device\Udp6
            ok = File_BlockInternetAccess2(proc, File_Udp, 0);

        if (ok)         // \Device\Udp4
            ok = File_BlockInternetAccess2(proc, File_Udp, -1);

        if (ok)         // \Device\Ip6
            ok = File_BlockInternetAccess2(proc, File_Ip, 0);

        if (ok)         // \Device\Ip4
            ok = File_BlockInternetAccess2(proc, File_Ip, -1);

        if (ok)         // \Device\Afd*
            ok = File_BlockInternetAccess2(proc, File_Afd, +1);

        if (ok)         // \Device\Nsi
            ok = File_BlockInternetAccess2(proc, File_Nsi, 0);
    }

    return ok;
}