ID Artikel: 115486 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0

Bagaimana kontrol perangkat Driver beban Order

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Windows NT dirancang di sekitar konsep bahwa pembalap pertama yang mengklaim perangkat memperoleh kepemilikan dari perangkat tersebut. Kepemilikan ini dapat berbagi atau dapat eksklusif; ini adalah untuk mengklaim pengandar perangkat. Jika perangkat secara eksklusif diklaim oleh pengandar perangkat, upaya lebih lanjut untuk mengklaim perangkat oleh kemudian load device driver gagal. Karena dari ini, penting bahwa urutan di mana pengandar perangkat memuat dapat diubah oleh penulis pengandar perangkat. Artikel ini menjelaskan dua metode yang Anda dapat digunakan untuk mengontrol urutan di mana pengandar perangkat memuat.

INFORMASI LEBIH LANJUT

Ada dua metode yang dapat Anda gunakan untuk mengontrol urutan dalam perangkat yang driver beban. Kedua metode mengambil keuntungan dari entri di registri yang dapat ditemukan di \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. The metode pertama adalah untuk memodifikasi ServiceGroupOrder. Metode kedua adalah untuk menetapkan nilai-nilai Tag yang menentukan urutan sopir loading menurut GroupOrderList. Nilai-nilai tag mulai jenis dan nama-nama grup di HKLM\SYSTEM\CurrentControlSet\Services\<drivername> kunci yang harus ditambahkan sebelum nilai dapat tercantum dalam daftar urutan Group. </drivername>

Dua metode ini hanya bekerja untuk pengandar perangkat yang memiliki nilai awal 0 (SERVICE_BOOT_START) atau 1 (SERVICE_SYSTEM_START). Dalam semua kasus, perangkat driver dengan nilai awal beban 0 sebelum driver perangkat apapun dengan awal nilai dari 1 upaya untuk memuat.

Metode 1: ServiceGroupOrder

ServiceGroupOrder berisi daftar nama kelompok dalam urutan bahwa mereka akan dimuat. Berikut adalah isi dimodifikasi ServiceGroupOrder:

SCSI miniport
pelabuhan
Disk utama
SCSI kelas
SCSI CDROM kelas
penyaring
sistem berkas boot
Base
Pointer Port
Keyboard Port
Pointer kelas
Keyboard kelas
Video Init
Video
Menyimpan video
sistem file
Log peristiwa
Stream driver
NDIS
TDI
NetBIOSGroup
SpoolerGroup
Menurut ServiceGroupOrder, pengandar perangkat di grup "SCSI kelas"memuat setelah semua pengandar perangkat di grup"disk utama"dan sebelum pengandar perangkat di grup "SCSI CDROM kelas" beban. Semakin tinggi a perangkat pengemudi grup adalah dalam daftar, semakin cepat load. ServiceGroupOrder Daftar dipindai dua kali. Pertama, semua pengandar perangkat dengan nilai mulai dari 0 beban; kemudian, semua pengandar perangkat dengan nilai awal 1 beban. Dengan demikian, perangkat dengan nilai awal beban 0 sebelum device driver dengan awal nilai 1, tidak peduli apa posisinya pada daftar ServiceGroupOrder.

Mungkin untuk penulis pengandar perangkat untuk mengedit ServiceGroupOrder. Dengan melakukan ini, grup baru dapat dibuat di tempat dalam daftar. Yang baik contoh mungkin pengandar perangkat SCSI oleh kelas yang disebut "SAMPLDRV" perlu memuat sebelum "SCSIDISK" karena SCSIDISK mengklaim perangkat yang SAMPLDRV perlu untuk mengklaim. Berikut adalah SCSIDISK's entri registri:
       \registry\machine\system\currentcontrolset\services\scsidisk
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Grup baru dapat ditambahkan ke ServiceGroupOrder yang disebut "beban saya Pertama "dan SAMPLDRV dapat memiliki grup yang ditetapkan untuk beban saya pertama. Di sini adalah ServiceGroupOrder diubah:

SCSI miniport
pelabuhan
Disk utama
Beban saya pertama
SCSI kelas
SCSI CDROM kelas
penyaring
sistem berkas boot
.
.
.
Berikut adalah SAMPLDRV's entri registri:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = Load Me First
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Dengan konfigurasi ini, SAMPLDRV beban sebelum SCSIDISK.

Metode # 2: GroupOrderList dan nilai-nilai Tag

Opsional kunci yang disebut Tag dapat dimasukkan ke dalam registri pengandar perangkat. Nilai Tag membantu menentukan urutan loading perangkat driver dalam kelompok. Urutan loading adalah tidak selalu dalam numerik pesanan; Sebaliknya, itu adalah dalam urutan yang ditentukan oleh GroupOrderList. Pertama entri per kelompok di GroupOrderList adalah jumlah nilai-nilai Tag. Ini adalah diikuti dengan urutan numerik di mana nilai-nilai Tag akan menjadi dimuat. Device driver dalam kelompok pertama dimuat menurut mereka Tag nilai seperti yang didefinisikan oleh GroupOrderList. Apabila pengandar perangkat tidak memiliki nilai Tag atau jika nilai Tag tidak di GroupOrderList, kemudian ini pengandar perangkat memuat setelah memuat pengandar perangkat dengan nilai Tag yang valid. Untuk pengandar perangkat ini, urutan loading tidak dijamin, lain dari itu semua pengandar perangkat dalam kelompok memuat sebelum kelompok berikutnya beban.

Berikut adalah output sebagian dari GroupOrderList:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          Filter = REG_BINARY 05 00 00 00 01 00...
          Keyboard Class = REG_BINARY 01 00 00 00 01 00...
          Keyboard Port = REG_BINARY 01 00 00 00 01 00...
          Ndis = REG_BINARY 09 00 00 00 01 00...
          Pointer Class = REG_BINARY 01 00 00 00 01 00...
          Pointer Port = REG_BINARY 03 00 00 00 01 00...
          .
          .
          .
				

Catatan: Ada tidak ada nilai untuk kelas SCSI. Tidak setiap kelompok terwakili dalam GroupOrderList. Ketika grup adalah tidak dalam GroupOrderList, urutan pengandar perangkat yang memuat dalam kelompok tidak dijamin.

Dengan ServiceGroupOrder, GroupOrderList dapat diubah. Menggunakan contoh yang sama seperti di atas, Tag entri untuk kelas SCSI dapat ditambahkan:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          SCSI class = REG_BINARY 02 00 00 00 02 00 00 00 01 00 00 00
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          .
          .
          .
				

Dalam contoh ini, kelompok SCSI kelas mengakui dua Tag nilai, 00000001 dan 00000002. Urutan di mana nilai-nilai Tag memuat adalah 00000002 pertama, diikuti oleh 00000001. Jika SAMPLDRV dalam kelompok kelas SCSI yang sama dengan SCSIDISK, berupa nilai Tag menjamin bahwa SAMPLDRV beban sebelum SCSIDISK karena SCSIDISK tidak memiliki Tag nilai dan non-Tagged driver memuat terakhir dalam kelompok.

Jika untuk beberapa alasan SCSIDISK diberikan nilai Tag 0x00000001, SAMPLDRV beban sebelum SCSIDISK ketika SAMPLDRV diberikan nilai Tag dari 00000002:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
          Tag = REG_DWORD 0x00000002
				

Berlaku bagi:
  • Microsoft Win32 Device Driver Kit for Windows NT 4.0
Kata kunci: 
kbhowto kbmt KB115486 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:115486  (http://support.microsoft.com/kb/115486/en-us/ )