Erkennen des Ressourcenaustauschs
Windows Resource Protection (WRP) verhindert das Ersetzen wichtiger Systemdateien, Ordner und Registrierungsschlüssel, die als Teil von Windows Vista oder Windows Server 2008 installiert werden.
WRP schützt Dateien, Ordner und Registrierungsschlüssel auf Windows Vista oder Windows Server 2008 durch Erkennen und Verhindern von Versuchen, geschützte Ressourcen zu ersetzen. Dieser Schutz basiert auf einer Windows DACL (Discretionary Access Control List) und Zugriffssteuerungslisten (Access Control Lists, ACL), die für geschützte Ressourcen definiert sind. Die Berechtigung für vollzugriff zum Ändern von WRP-geschützten Ressourcen ist auf TrustedInstaller beschränkt. WRP-geschützte Ressourcen können nur mithilfe der unterstützten Mechanismen zum Ersetzen von Ressourcen mit dem Windows Modules Installer-Dienst geändert werden. Anwendungen, die versuchen, eine WRP-geschützte Ressource zu ändern, ändern die Ressource nie und erhalten möglicherweise eine Fehlermeldung, die besagt, dass der Zugriff auf die Ressource verweigert wurde.
Anwendungen und Installationsprogramme können die Funktionen SfcIsFileProtected und SfcIsKeyProtected verwenden, um zu bestimmen, ob eine Datei oder ein Registrierungsschlüssel geschützt ist.
**Windows Server 2003 und Windows XP: **
Windows Der Dateischutz (File Protection, WFP) schützt Systemdateien, indem versucht wird, geschützte Systemdateien zu ersetzen. Dieser Schutz wird ausgelöst, nachdem WFP eine Verzeichnisänderungsbenachrichtigung für eine Datei in einem geschützten Verzeichnis erhalten hat. Wenn WFP diese Benachrichtigung empfängt, wird bestimmt, welche Datei geändert wurde. Wenn die Datei geschützt ist, sucht WFP die Dateisignatur in einer Katalogdatei, um zu ermitteln, ob die neue Datei die richtige Version ist. Wenn die Dateiversion nicht korrekt ist, ersetzt das System die Datei durch die richtige Version aus dem Cache oder verteilungsmedien, je nachdem, ob sich die Datei im Cache befindet. WFP sucht in der folgenden Reihenfolge nach der richtigen Datei:
- Durchsuchen Sie das Cacheverzeichnis.
- Suchen Sie den Netzwerk-Installationspfad, wenn das System mithilfe der Netzwerk-Installation installiert wurde.
- Suchen Sie nach Windows CD-ROM, wenn das System über CD-ROM installiert wurde.
Wenn WFP die Datei an den ersten beiden Speicherorten nicht automatisch finden kann, wird die folgende Meldung angezeigt:

Wenn das System mithilfe einer CD-ROM installiert wurde, zeigt WFP die folgende Meldung an:

Wenn ein Administrator nicht angemeldet ist, kann WFP keines dieser Dialogfelder anzeigen. WFP zeigt das Dialogfeld an, nachdem sich ein Administrator angemeldet hat.
WFP protokolliert auch den Dateiersetzungsversuch im Systemereignisprotokoll. Wenn der Administrator die Wiederherstellung der richtigen Datei abgebrochen hat, protokolliert WFP den Abbruch.
Abrufen der Liste der geschützten Dateien
Das folgende Beispiel zeigt, wie Anwendungen und Installationsprogramme die SfcGetNextProtectedFile-Funktion verwenden können, um die vollständige Liste der geschützten Dateien zu erhalten.
#include <windows.h>
#include <sfc.h>
#include <stdio.h>
#pragma comment(lib, "sfc")
void wmain (int argc, WCHAR ** argv)
{ UNREFERENCED_PARAMETER(argc);
PROTECTED_FILE_DATA pfd = {0};
BOOL fResult;
wprintf (L"List of protected files:\n\n", argv[1]);
while (FALSE != (fResult = SfcGetNextProtectedFile (NULL, &pfd)))
{
wprintf (L" %lu %s\n", pfd.FileNumber, pfd.FileName);
}
if (GetLastError() == ERROR_NO_MORE_FILES)
{
wprintf (L"\nAll %lu protected files listed\n", pfd.FileNumber);
}
else
{
wprintf (L"\nerror %lu: SfcGetNextProtectedFile() failed unexpectedly\n", GetLastError());
}
}