Tabel SelfReg
Tabel SelfReg berisi informasi tentang modul yang perlu didaftarkan sendiri. Alat penginstal memanggil fungsi DllRegisterServer selama penginstalan modul; ini memanggil DllUnregisterServer selama penghapusan instalasi modul. Alat penginstal tidak mendaftarkan sendiri file EXE.
Tabel SelfReg memiliki kolom berikut.
Kolom | Jenis | Kunci | Dapat diubah ke null |
---|---|---|---|
File_ | Pengidentifikasi | Y | N |
Biaya | Bilangan bulat | N | Y |
Kolom
-
File_
-
Kunci eksternal ke kolom pertama tabel File yang menunjukkan modul yang perlu didaftarkan.
-
Biaya
-
Biaya pendaftaran modul dalam byte. Ini harus berupa angka non-negatif.
Keterangan
Penulis paket penginstalan sangat disarankan untuk tidak menggunakan pendaftaran mandiri. Sebaliknya mereka harus mendaftarkan modul dengan menulis satu atau beberapa tabel yang disediakan oleh alat penginstal untuk tujuan ini. Untuk informasi selengkapnya, lihat Grup Tabel Registri. Banyak manfaat memiliki layanan penginstal pusat hilang dengan pendaftaran mandiri karena rutinitas pendaftaran mandiri cenderung menyembunyikan informasi konfigurasi penting. Alasan untuk menghindari pendaftaran mandiri meliputi:
- Pembatalan penginstalan dengan modul yang terdaftar sendiri tidak dapat dilakukan dengan aman menggunakan DllUnregisterServer karena tidak ada cara untuk mengetahui apakah kunci yang terdaftar sendiri digunakan oleh fitur atau aplikasi lain.
- Kemampuan untuk menggunakan iklan berkurang jika Pendaftaran server kelas atau ekstensi dilakukan dalam rutinitas pendaftaran mandiri.
- Alat penginstal secara otomatis menangani kunci HKCR dalam tabel registri untuk penginstalan per pengguna atau per komputer. Rutinitas DllRegisterServer saat ini tidak mendukung gagasan kunci HKCR per pengguna.
- Jika beberapa pengguna menggunakan aplikasi yang terdaftar sendiri di komputer yang sama, setiap pengguna harus menginstal aplikasi saat pertama kali mereka menjalankannya. Jika tidak, alat penginstal tidak dapat dengan mudah menentukan bahwa kunci registri HKCU yang tepat ada.
- DllRegisterServer dapat ditolak akses ke sumber daya jaringan seperti pustaka jenis jika komponen ditentukan sebagai run-from-source dan tercantum dalam tabel SelfReg. Ini dapat menyebabkan penginstalan komponen gagal selama penginstalan administratif.
- DLL pendaftaran mandiri lebih rentan terhadap kesalahan pengodean karena kode baru yang diperlukan untuk DllRegisterServer biasanya berbeda untuk setiap DLL. Sebagai gantinya gunakan tabel registri dalam database untuk memanfaatkan kode yang ada yang disediakan oleh alat penginstal.
- DLL yang mendaftar sendiri terkadang dapat ditautkan ke DLL tambahan yang tidak ada atau merupakan versi yang salah. Sebaliknya, alat penginstal dapat mendaftarkan DLL menggunakan tabel registri tanpa dependensi pada status sistem saat ini.
Catatan
Anda tidak dapat menentukan urutan di mana penginstal mendaftar atau membatalkan pendaftaran DLL mandiri dengan menggunakan tindakan SelfRegModules dan SelfUnRegModules . Lihat Menentukan Urutan Pendaftaran Mandiri.
Validasi