Windows-Firewall für Spieleentwickler

In diesem Artikel wird die Windows-Firewall beschrieben, warum sie vorhanden ist, was sie erreicht und wie sie funktioniert. Am wichtigsten ist, dass es beschreibt, wie Sie Ihr Spiel so konfigurieren, dass es gut mit der Firewall funktioniert.

Inhalte:

Was ist eine Firewall?

Die Firewall bietet eine Barriere gegen netzwerkbasierte Eindringlinge. Es blockiert unerwünschten eingehenden Datenverkehr und macht das System im Internet größtenteils unsichtbar, indem ICMP-Anforderungen (Internet Control Message Protocol) abgelehnt werden. Dies bedeutet, dass Ping und Tracert nicht funktionieren. Die Firewall sucht und lehnt auch ungültige Pakete ab.

Diese Barriere verhindert opportunistische Angriffe. Angriffe verbreiten sich, indem viele Systeme mit der gleichen Sicherheitslücke gefunden werden. Die Firewall kann viele Angriffe verhindern, indem sie ein "Nicht stören"-Zeichen für diese Features aufstellt, die derzeit nicht verwendet werden; der Angriff wird ignoriert und schlägt nicht nach Hause ein. Der wesentliche Vorteil der Windows-Firewall besteht darin, dass nicht verwendete Features und Anwendungen keine Angriffsmöglichkeiten sein können.

Der Benutzer konfiguriert das System, um zu ermitteln, welche Anwendungen und Features benötigt werden und für das Netzwerk geöffnet sein sollten. Dies geschieht entweder, wenn eine Anwendung installiert ist oder wenn sie versucht, sich für das Netzwerk zu öffnen.

Wie kann ich feststellen, ob mein Spiel betroffen ist?

Mit der Einführung von Windows XP SP2 wurde die Windows-Firewall weit verbreitet. Alle Multiplayer-Windows-Spiele sind bis zu einem gewissen Grad betroffen. Während Clients im Allgemeinen in guter Verfassung sind, müssen Server, Hosts und Peers in Peer-to-Peer alle die Firewall konfiguriert sein, um weiterhin zu funktionieren. Insbesondere wird eingehender nicht angeforderter Datenverkehr gelöscht. Die Firewall fängt Netzwerkdatenverkehr-Filterpakete basierend auf dem Paketinhalt und der letzten Netzwerkaktivität ab. Die Firewall verwendet den Inhalt und die Aktivität, um zu entscheiden, ein Paket weiterzuleiten oder zu löschen. Sobald die Firewall ordnungsgemäß konfiguriert ist, kann ein Spiel eingehenden nicht angeforderten Datenverkehr wie zuvor akzeptieren.

Wer hat eingehenden unaufgebetenen Datenverkehr?

  • Client/Server: Alle Teilnehmer stellen eine Verbindung mit einem zentralen Server her. Der zentrale Server ist der server mit eingehendem unaufgefragten Datenverkehr. Die Clients, die eine Verbindung mit dem Server herstellen, fordern Rückgabedatenverkehr an, der erwartet wird und die Firewall passieren darf, wenn die Regeln für Clients befolgt werden. Der zentrale Server muss so konfiguriert sein, dass er den nicht angeforderten Datenverkehr akzeptiert, damit der Clientdatenverkehr die Firewall passieren kann.
  • Massively Multiplayer (MMP): Alle Teilnehmer sind mit einem Rechenzentrum verbunden. Dies ist eine komplexe Client-Server-Beziehung, da das Rechenzentrum über den eingehenden nicht angeforderten Datenverkehr verfügt. Die Teilnehmer sind Clients und müssen in der Regel keinen unerwünschten Datenverkehr akzeptieren.
  • Peer-to-Peer, bei dem alle Teilnehmer direkt miteinander verbunden sind: Alle Teilnehmer müssen bereit sein, unerwünschten Datenverkehr von jedem neuen Spieler zu akzeptieren, der der Gruppe beitritt. In gewissem Sinne muss jeder der Teilnehmer als Host fungieren, sodass sie alle so konfiguriert werden müssen, als wären sie Hosts.

Clients sind in der Regel in guter Verfassung. Ihre ausgehenden TCP/IP-Verbindungen (Transmission Control Protocol/Internet Protocol) funktionieren einwandfrei, ebenso wie ausgehende UDP-Nachrichten (User Datagram Protocol) und zeitnahe Antworten auf diese Nachrichten . Die Firewall hält den Port nach jeder ausgehenden Nachricht in Erwartung einer Antwort 90 Sekunden lang geöffnet.

Die Firewall vor Windows XP SP2

Die Internet Connection Firewall (ICF) in Windows XP und Windows Server 2003 ist ein zustandsbehafteter Paketfilter und verarbeitet sowohl Internetprotokoll, Version 4 (IPv4) als auch Internetprotokoll, Version 6 (IPv6). Es ist jedoch nicht standardmäßig aktiviert und unterstützt keine Netzwerkstapel von Drittanbietern, von denen es eine beträchtliche Anzahl in der Welt gibt, wie große Internetanbieter einschließlich nationaler Telefongesellschaften.

Für Personen, die nicht unter Windows XP SP2 arbeiten, wird das Aktivieren des ICF dringend empfohlen. Die Internet Connection Firewall (ICF) stellt eine Portzuordnung bereit, um den Paketfilter außer Kraft zu setzen. Im Wesentlichen geben Sie den Port an, der geöffnet werden soll, bis Sie ihn schließen. Wenn der Benutzer vor dem Schließen neu gestartet wird, bleibt er geöffnet, bis er speziell geschlossen wird. Die Steuerung der Firewall und die Verwaltung der Portzuordnungen erfolgt über INetSharingManager (IPv4) und INetFwV6Mgr (IPv6).

Die Windows-Firewall für Windows XP SP2 ist eine umfassendere Lösung, die Netzwerkstapel von Drittanbietern unterstützt und Ports intelligenter verarbeitet: Ports bleiben nur so lange offen, wie die Anwendung, die sie benötigt, weiterhin aktiv ist.

Windows XP SP2-Firewall ist besser

Windows XP SP2 stellt die Sicherheitsoptionen und -einstellungen in den Vordergrund. Das Ziel besteht darin, standardmäßig zu schützen und es dem Benutzer zu ermöglichen, fundierte Entscheidungen darüber zu treffen, welche Anwendungen auf dem Computer ausgeführt werden dürfen.

Die neue Windows-Firewall ist sowohl unter Windows XP SP2 als auch unter Windows Server 2003 Service Pack 1 (SP1) verfügbar. Wie die ICF ist es eine Softwarefirewall, die sowohl IPv4 als auch IPv6 unterstützt, aber im Gegensatz zu ICF die Windows-Firewall:

  • Verfügt über einen Startzeitschutz des Systems, wodurch ein kleines Fenster der Sicherheitsanfälligkeit während des Startvorgangs beseitigt wird.
  • Unterstützt Netzwerkstapel von Drittanbietern.
  • Verfügt über einen "Ein ohne Ausnahmen"-Modus, der alle nicht angeforderten eingehenden Pakete blockiert. Dies ist großartig, wenn Sie ein öffentliches Netzwerk verwenden, z. B. in einem Flughafen oder Café.

Im Modus "Ein ohne Ausnahmen" werden alle statischen Löcher geschlossen. API-Aufrufe zum Öffnen einer statischen Lücke sind zulässig, aber zurückgestellt. Das heißt, sie werden erst angewendet, wenn die Firewall wieder in den normalen Betrieb wechselt. Alle Listenanforderungen von Anwendungen werden ebenfalls ignoriert. Ausgehende Verbindungen sind weiterhin erfolgreich.

Fügen Sie ihre Anwendung bei neuen Anwendungen während der Installation der "Ausnahmenliste" hinzu. Sie können die Anwendung mithilfe der INetFwAuthorizedApplications-Schnittstelle hinzufügen und den vollständigen Pfad angeben. Wir behandeln die Details im Beispiel.

Nebenbei fragen Sie sich möglicherweise, ob es sich um ein Sicherheitsrisiko handelt, dass Anwendungen anwendungen hinzufügen und aus der Ausnahmeliste entfernen können, oder vielleicht denken Sie, dass das größere Risiko darin besteht, dass Anwendungen die Firewall vollständig deaktivieren können. Um diese Aufgaben auszuführen, muss die Anwendung über Administratorrechte verfügen. Wenn auf Ihrem System schädlicher Code im Administratormodus ausgeführt wird, ist das Spiel bereits vorbei und der Hacker hat bereits gewonnen. Die Fähigkeit des Hackers, die Firewall zu deaktivieren, würde wenig mehr als eine Fußnote verdienen.

Legacyanwendungen, einschließlich Anwendungen, die vor dem Upgrade des Benutzers auf Windows XP SP2 installiert wurden, werden mit dem Popup "Ausnahmenliste" behandelt (siehe Abbildung 1). In diesem Dialogfeld wird angezeigt, wenn eine Anwendung versucht, einen Port für eingehenden Datenverkehr zu öffnen – entweder beim Aufrufen von bind() mit einem Port ungleich Null für UDP oder accept() für das TCP/IP-Protokoll. Sie müssen als Administrator ausgeführt werden, um Anwendungen aufzuheben, während "Später fragen" dieses Mal nicht zulässig ist, aber beim nächsten Mal erneut fragt.

Dies ist ein nicht blockierende, systemmodales Dialogfeld. Wenn Sie eine Microsoft Direct3D-Anwendung im Vollbildmodus ausführen, wird das Dialogfeld darunter angezeigt. und der Benutzer kann dies dann verarbeiten, wenn die Anwendung den Vollbildmodus oder die Alt-Registerkarten wieder auf dem Desktop beendet. Es ist jedoch für den Benutzer nicht immer offensichtlich, dass dieses Dialogfeld angezeigt wurde, wenn ein Spiel vollbildlich ausgeführt wird. Daher ist es wichtig, zu vermeiden, dass dieses Dialogfeld angezeigt wird, indem Sie die INetFwAuthorizedApplications-Schnittstelle verwenden, wie unten erläutert.

Abbildung 1. Popupdialogfeld "Ausnahmenliste"

Popupdialogfeld

Sie werden feststellen, dass das Popup den Namen und herausgeber der Anwendung kennt. Hier gibt es keine Magie – es wird aus den Versionsinformationen der ausführbaren Datei abgerufen. Diese Informationen sind ein wichtiges Systemverwaltungstool. Es wird sogar für die laufende Anwendungskompatibilität verwendet. Einige Anwendungen versäumen es, diese Versionsinformationen auf dem neuesten Stand zu halten.

Benutzer können ihre Anwendungen auch über die Benutzeroberfläche hinzufügen (siehe Abbildung 2).

Abbildung 2. Konfigurieren der Firewall

Konfigurieren der Firewall

Abbildung 3. Hinzufügen eines Programms zur Liste der Firewallausnahmen

Hinzufügen eines Programms zur Liste der Firewallausnahmen

Das beste Szenario besteht darin, Ergänzungen und Entfernungen aus der Ausnahmeliste automatisiert zu machen. Der beste Zeitpunkt für diese Ergänzungen und Entfernungen ist während des Installations- und Deinstallationsprozesses. Das Hinzufügen oder Entfernen aus der Firewallausnahmeliste erfordert Administratorrechte. Achten Sie also darauf, dies zu berücksichtigen.

Arbeiten mit der Windows-Firewall

Auch hier müssen die meisten Spiele nur der Firewall-Ausnahmeliste hinzugefügt werden, wenn sie als Server fungieren können oder wenn sie ein Peer-to-Peer-Kommunikationsprotokoll implementieren. Die FirewallInstallHelper.dll ist eine Beispiel-DLL, die über ein Installationsprogramm aufgerufen werden kann. Die Quelle wird bereitgestellt, wenn Sie die Quelle direkt in Ihre eigene Anwendung integrieren möchten. Das Beispiel finden Sie hier:

Datei
Quelle: (SDK-Stamm)\Samples\C++\Misc\FirewallInstallHelper
Ausführbaren: (SDK-Stamm)\Samples\C++\Misc\Bin\<arch>\FirewallInstallHelper.dll

 

Die von dieser DLL exportierten Funktionen sind die folgenden:

AddApplicationToExceptionListW

Diese Funktion fügt der Ausnahmeliste eine Anwendung hinzu. Sie enthält einen vollständigen Pfad zur ausführbaren Datei und einen Anzeigenamen, der in der Firewall-Ausnahmeliste angezeigt wird. Diese Funktion erfordert Administratorrechte.

AddApplicationToExceptionListA

ANSI-Version von AddApplicationToExceptionListW

RemoveApplicationFromExceptionListW

Diese Funktion entfernt die Anwendung aus der Ausnahmeliste. Sie enthält einen vollständigen Pfad zur ausführbaren Datei. Für diese Funktion sind Administratorrechte erforderlich.

RemoveApplicationFromExceptionListA

ANSI-Version von RemoveApplicationFromExceptionListW

CanLaunchMultiplayerGameW

Diese Funktion meldet, ob die Anwendung deaktiviert oder aus der Ausnahmeliste entfernt wurde. Es sollte jedes Mal aufgerufen werden, wenn das Spiel ausgeführt wird. Die Funktion akzeptiert einen vollständigen Pfad zur ausführbaren Datei. Für diese Funktion sind keine Administratorrechte erforderlich.

CanLaunchMultiplayerGameA

ANSI-Version von CanLaunchMultiplayerGameW

SetMSIFirewallProperties

Rufen Sie dies nur auf, wenn Sie benutzerdefinierte Aktionen in Windows Installer verwenden. Weitere Informationen finden Sie unten.

AddToExceptionListUsingMSI

Rufen Sie dies nur auf, wenn Sie benutzerdefinierte Aktionen in Windows Installer verwenden. Weitere Informationen finden Sie unten.

RemoveFromExceptionListUsingMSI

Rufen Sie dies nur auf, wenn Sie benutzerdefinierte Aktionen in Windows Installer verwenden. Weitere Informationen finden Sie unten.

In den folgenden Abschnitten werden bestimmte Methoden zum Aufrufen der exportierten DLL-Funktionen aus dieser FirewallInstallHelper aus einem InstallShield-, Wise- oder Windows Installer-Paket beschrieben. Alle Methoden rendern dieselben Ergebnisse, und es liegt beim Entwickler, zu bestimmen, welche Methode implementiert werden soll.

Integrieren mithilfe von InstallShield InstallScript

Eine alternative Methode zur Verwendung der Firewall-APIs besteht darin, die Funktionsaufrufe zu einem InstallShield InstallScript hinzuzufügen. Die für die Integration erforderlichen Schritte sind ziemlich einfach:

  1. Öffnen Sie ein InstallScript-Projekt im InstallShield-Editor.

  2. Fügen Sie dem Projekt die FirewallInstallHelper.dll als Supportdatei hinzu.

    1. Öffnen Sie auf der Registerkarte Projekt-Assistent die Registerkarte Anwendungsdateien.
    2. Klicken Sie auf die Schaltfläche Dateien hinzufügen, um Dateien zum Anwendungszielordner hinzuzufügen.
    3. Navigieren Sie zu der FirewallInstallHelper.dll, die Sie erstellt haben, oder verwenden Sie die im DirectX SDK bereitgestellte, und fügen Sie sie dem Projekt hinzu.
  3. Fügen Sie dem Projekt InstallScript hinzu.

    1. Öffnen Sie die Ansicht Installation Designer, und klicken Sie auf Verhalten und Logik | Installscript
    2. Klicken Sie auf die InstallScript-Datei (normalerweise setup.rul), um sie im Editor zu öffnen.
    3. Fügen Sie den folgenden Code in die InstallScript-Datei ein:
    #include "ifx.h"
    
    prototype BOOL FirewallInstallHelper.AddApplicationToExceptionListW( WSTRING, WSTRING );
    prototype BOOL FirewallInstallHelper.RemoveApplicationFromExceptionListW( WSTRING );
    
    function OnMoved()
        WSTRING path[256];
    begin
        // The DLL has been installed into the TARGETDIR
        if !MAINTENANCE then // TRUE when installing
            UseDLL( TARGETDIR ^ "FirewallInstallHelper.dll" );
            path = TARGETDIR ^ "TODO: change to relative path to executable from install directory";
            FirewallInstallHelper.AddApplicationToExceptionListW( path, "TODO: change to friendly app name" );
            UnUseDLL( TARGETDIR ^ "FirewallInstallHelper.dll" );
        endif;
    end;
    
    
    function OnMoving()
        WSTRING path[256];
    begin
        // The DLL is about to be removed from TARGETDIR
        if MAINTENANCE && UNINST != "" then // TRUE when uninstalling
            UseDLL( TARGETDIR ^ "FirewallInstallHelper.dll" );
            path = TARGETDIR ^ "TODO: change to relative path to executable from install directory";
            FirewallInstallHelper.RemoveApplicationFromExceptionListW( path );
            UnUseDLL( TARGETDIR ^ "FirewallInstallHelper.dll" );
        endif;
    end;
    
    1. Ändern Sie die TODO-Kommentare mit dem Anwendungsnamen, der in der Firewall-Ausnahmeliste angezeigt wird, und dem Pfad zur ausführbaren Spieldatei relativ zum Installationsverzeichnis.

Integration in Wise für Windows Installer

Für die Integration in Wise für Windows Installer müssen die folgenden Schritte ausgeführt werden:

  1. Öffnen Sie Ihr Wise for Windows Installer-Projekt.

  2. Wählen Sie unten die Registerkarte "Installationsexperte" aus.

  3. Klicken Sie auf Dateien, und fügen Sie die FirewallInstallHelper.dll aus dem DXSDK dem Installationsverzeichnis des Spiels hinzu.

  4. Wählen Sie unten die Registerkarte "MSI-Skript" aus.

  5. Wählen Sie unten die Registerkarte "Direkt ausführen" aus.

  6. Fügen Sie nach CostFinalize eine Aktion "Eigenschaft festlegen" hinzu, die FULLPATH auf "[INSTALLDIR]relativer Pfad zur ausführbaren Datei aus dem Installationsverzeichnis" festlegt. Beispiel: "[INSTALLDIR]game.exe" ohne die Anführungszeichen

  7. Wählen Sie unten die Registerkarte "Verzögert ausführen" aus.

  8. Fügen Sie nach PublishProduct eine "If-Anweisung" mit der Bedingung "NOT Installed" (Groß-/Kleinschreibung beachten) hinzu.

  9. Fügen Sie innerhalb des If-Blocks eine Aktion "Benutzerdefinierte DLL vom Ziel aufrufen" hinzu.

    1. Legen Sie das Feld DLL-Datei auf "[INSTALLDIR]FirewallInstallHelper.dll" fest.
    2. Legen Sie das Feld Funktionsname auf "AddApplicationToExceptionListA" fest.
    3. Fügen Sie einen Parameter mit dem Typ "Zeichenfolgenzeiger", der Wertquelle "Property" und dem Eigenschaftennamen "FULLPATH" hinzu.
    4. Fügen Sie einen zweiten Parameter mit dem Typ "Zeichenfolgenzeiger", der Wertquelle "Constant" hinzu, und legen Sie den Konstantenwert auf den Anzeigenamen der Anwendung fest, die in der Firewallausnahmeliste angezeigt werden soll.
    5. Schließen Sie den If-Block, indem Sie eine "End-Anweisung" hinzufügen.
  10. Fügen Sie direkt oberhalb der RemoveFiles-Aktion oben einen weiteren If-Block mit der Bedingung "REMOVE~="ALL"" (Groß-/Kleinschreibung und ohne äußere Anführungszeichen) hinzu.

  11. Fügen Sie im zweiten If-Block eine Aktion "Benutzerdefinierte DLL vom Ziel aufrufen" hinzu.

    1. Legen Sie das Feld DLL-Datei auf "[INSTALLDIR]FirewallInstallHelper.dll" fest.
    2. Legen Sie das Feld Funktionsname auf "RemoveApplicationFromExceptionListA" fest.
    3. Fügen Sie einen Parameter mit dem Typ "Zeichenfolgenzeiger", der Wertquelle "Property" und dem Eigenschaftennamen "FULLPATH" hinzu.
    4. Schließen Sie den zweiten If-Block, indem Sie eine "End-Anweisung" hinzufügen.

Integration in Windows Installer

Um die Integration in Windows Installer auf hoher Ebene zu erreichen, müssen diese Schritte ausgeführt werden. Sie werden unten ausführlich erläutert:

  • Fügen Sie wie unten beschrieben zwei Eigenschaften "FriendlyNameForFirewall" und "RelativePathToExeForFirewall" hinzu.
  • Rufen Sie nach der CostFinalize-Aktion "SetMSIFirewallProperties" in einer sofortigen benutzerdefinierten Aktion auf, um die entsprechenden MSI-Eigenschaften für die anderen benutzerdefinierten Aktionen festzulegen.
  • Rufen Sie während der Installation nach der InstallFiles-Aktion eine verzögerte benutzerdefinierte Aktion auf, die die Funktion "AddToExceptionListUsingMSI" von FirewallInstallHelper verwendet.
  • Rufen Sie während der Deinstallation nach der InstallFiles-Aktion eine verzögerte benutzerdefinierte Aktion auf, die die Funktion "RemoveFromExceptionListUsingMSI" von FirewallInstallHelper verwendet.
  • Rufen Sie während des Rollbacks eine verzögerte benutzerdefinierte Aktion auf, die auch die Funktion "RemoveFromExceptionListUsingMSI" von FirewallInstallHelper aufruft.

Im Folgenden finden Sie die erforderlichen Schritte, um dazu einen MSI-Editor wie Orca im Platform SDK zu verwenden. Beachten Sie, dass einige Editoren über Assistenten verfügen, die einige dieser Schritte vereinfachen:

  1. Öffnen Sie das MSI-Paket in Orca.

  2. Fügen Sie der Tabelle Binary Folgendes hinzu:

    Name Daten
    FIREWALL Verweisen Sie auf die FirewallInstallHelper.dll. Diese Datei wird in das MSI-Paket eingebettet, sodass Sie diesen Schritt jedes Mal ausführen müssen, wenn Sie FirewallInstallHelper.dll erneut kompilieren.

     

  3. Fügen Sie der Tabelle CustomAction Folgendes hinzu:

    Aktion type `Source` Ziel
    FirewallSetMSIProperties msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue = 65 FIREWALL SetMSIFirewallProperties
    FirewallAdd msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 FIREWALL AddToExceptionListUsingMSI
    FirewallRemove msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3137 FIREWALL RemoveFromExceptionListUsingMSI
    FirewallRollBackAdd msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 FIREWALL RemoveFromExceptionListUsingMSI
    FirewallRollBackRemove msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeContinue + msidbCustomActionTypeRollback + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate = 3393 FIREWALL AddToExceptionListUsingMSI

     

  4. Fügen Sie der Tabelle InstallExecuteSequence Folgendes hinzu:

    Aktion Bedingung Sequenz Notizen
    FirewallSetMSIProperties 1010 Dies wird bald nach CostFinalize.
    FirewallAdd NICHT installiert 4021 Diese benutzerdefinierte Aktion erfolgt nur während einer neu installierten Installation. Die Sequenznummer platziert die Aktion nach InstallFiles und nach den Rollbacks.
    FirewallRollBackAdd NICHT installiert 4020 Diese benutzerdefinierte Aktion wird nur ausgeführt, wenn eine neue Installation abgebrochen wird. Die Sequenznummer platziert die Aktion nach InstallFiles und vor der benutzerdefinierten Aktion Hinzufügen.
    FirewallRemove Installiert 3461 Diese benutzerdefinierte Aktion wird nur während der Deinstallation ausgeführt. Die Sequenznummer platziert die Aktion direkt vor RemoveFiles und nach den Rollbacks.
    FirewallRollBackRemove NICHT installiert 3460 Diese benutzerdefinierte Aktion wird nur ausgeführt, wenn eine Deinstallation abgebrochen wird. Die Sequenznummer platziert die Aktion direkt vor RemoveFiles und vor der benutzerdefinierten Aktion Entfernen.

     

  5. Fügen Sie der Tabelle Property Folgendes hinzu:

    Eigenschaft Wert
    FriendlyNameForFirewall Muss der Name sein, der in der Ausnahmeliste angezeigt wird. Beispiel: "Beispielspiel"
    RelativePathToExeForFirewall Muss die installierte ausführbare Datei des Spiels sein. Beispiel: "ExampleGame.exe"

     

Weitere Informationen zu Windows Installer finden Sie unter Windows Installer.

Empfehlungen

Die Firewall ist hier, um zu bleiben. Diese Empfehlungen bieten Ihren Kunden eine gute Firewallerfahrung mit Ihrem Windows-Spiel:

  • Weisen Sie Benutzern nicht an, die Firewall zu deaktivieren, um Ihr Spiel zu spielen. Dies macht den gesamten Computer anfällig, auch wenn sie Ihr Spiel nicht spielen.
  • Machen Sie die Firewallkonfiguration für Ihre Benutzer nahtlos. Fügen Sie Ihre Anwendung während der Installation der Ausnahmeliste hinzu, und entfernen Sie die Anwendung während der Installation aus der Ausnahmeliste.
  • Geben Sie dem Benutzer Feedback, wenn multiplayer durch den Firewallstatus blockiert wird. Deaktivieren Sie beispielsweise Netzwerkfeatures, wenn sie entweder nicht funktionieren, weil die Anwendung nicht zulässig ist oder weil sich das System im Modus "Keine Ausnahmen" befindet.