Bagikan melalui


Mendeteksi Penggantian Sumber Daya

Windows Resource Protection (WRP) mencegah penggantian file sistem penting, folder, dan kunci registri yang diinstal sebagai bagian dari Windows Vista atau Windows Server 2008.

WRP melindungi file, folder, dan kunci registri pada Windows Vista atau Windows Server 2008 dengan mendeteksi dan mencegah upaya mengganti sumber daya yang dilindungi. Perlindungan ini didasarkan pada daftar kontrol akses diskresi Windows (DACL) dan daftar kontrol akses (ACL) yang ditentukan untuk sumber daya yang dilindungi. Izin untuk akses penuh untuk memodifikasi sumber daya yang dilindungi WRP dibatasi untuk TrustedInstaller. Sumber daya yang dilindungi WRP hanya dapat diubah menggunakan Mekanisme Penggantian Sumber Daya yang Didukung dengan layanan Penginstal Modul Windows. Aplikasi yang mencoba mengubah sumber daya yang dilindungi WRP tidak pernah mengubah sumber daya dan mungkin menerima pesan kesalahan yang menyatakan bahwa akses ke sumber daya ditolak.

Aplikasi dan penginstal dapat menggunakanSfcIsFileProtecteddan fungsi SfcIsKeyProtected untuk menentukan apakah file atau kunci registri dilindungi.

**Windows Server 2003 dan Windows XP: **

Windows File Protection (WFP) melindungi file sistem dengan mendeteksi upaya untuk mengganti file sistem yang dilindungi. Perlindungan ini dipicu setelah WFP menerima pemberitahuan perubahan direktori untuk file di direktori yang dilindungi. Ketika WFP menerima pemberitahuan ini, WFP menentukan file mana yang telah berubah. Jika file dilindungi, WFP mencari tanda tangan file dalam file katalog untuk menentukan apakah file baru adalah versi yang benar. Jika versi file tidak benar, sistem mengganti file dengan versi yang benar dari cache atau media distribusi, tergantung pada apakah file terletak di cache. WFP mencari file yang benar dalam urutan berikut:

  1. Cari direktori cache.
  2. Cari jalur penginstalan jaringan, jika sistem diinstal menggunakan penginstalan jaringan.
  3. Cari pada CD-ROM Windows, jika sistem diinstal dari CD-ROM.

Jika WFP tidak dapat menemukan file secara otomatis di dua lokasi pertama, WFP akan menampilkan pesan berikut:

pesan wfp ditampilkan ketika file tidak ditemukan di direktori cache atau jalur penginstalan jaringan

Jika sistem diinstal menggunakan CD-ROM, WFP menampilkan pesan berikut:

pesan wfp ditampilkan untuk meminta pengguna memasukkan windows cd-rom

Jika administrator tidak masuk, WFP tidak dapat menampilkan salah satu kotak dialog ini. WFP akan menampilkan kotak dialog setelah administrator masuk.

WFP juga mencatat upaya penggantian file di log peristiwa sistem. Jika administrator membatalkan pemulihan file yang benar, WFP mencatat pembatalan.

Mengambil Daftar File yang Dilindungi

Contoh berikut menunjukkan bagaimana aplikasi dan penginstal dapat menggunakan fungsi SfcGetNextProtectedFile untuk mendapatkan daftar lengkap file yang dilindungi.

#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());
   }

}