Bagikan melalui


Menentukan Reflektor dalam File INF

Mulai dari Windows 11, cara yang disarankan untuk menambahkan reflektor (WUDFRd.sys) ke tumpukan perangkat mode kernel adalah dengan mereferensikan file WudfRd.inf yang disediakan sistem dalam file INF driver UMDF.

Nota

WudfRd.inf hanya disertakan dengan Windows 11 dan yang lebih baru.

Pada Windows 10 dan yang lebih lama, untuk menambahkan reflektor (WUDFRd.sys), file INF dari driver UMDF harus menyertakan direktif AddService dalam bagian INF DDInstall.Services serta di bagian penginstalan layanan. Meskipun metode ini masih berfungsi pada Windows 11 dan yang lebih baru, tidak disarankan.

Dalam kedua metode tersebut, reflektor dapat menjadi filter bagian atas, filter bagian bawah, atau layanan untuk perangkat, sesuai dengan konfigurasi tumpukan mode pengguna.

Mengacu pada WudfRd.inf (Windows 11 dan yang lebih baru)

Anda dapat menemukan contoh INF yang menggunakan teknik ini di echoum.inx. Atau, gunakan salah satu cuplikan berikut.

Untuk menginstal layanan WudfRd sebagai driver fungsi untuk perangkat:

[DDInstall]
Include=WUDFRD.inf
Needs=WUDFRD.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD.NT.Services
; also include any existing any DDInstall.Services directives

Untuk menginstal layanan WudfRd sebagai pengandar filter utama:

[DDInstall] 
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Services
; also include any existing any DDInstall.Services directives

[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_UpperFilter.NT.Filters

Untuk menginstal layanan WudfRd sebagai driver filter yang lebih rendah:

[DDInstall] 
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT
; also include any existing DDInstall directives

[DDInstall.HW]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.HW
; also include any existing DDInstall.HW directives

[DDInstall.Services]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Services
; also include any existing any DDInstall.Services directives

[DDInstall.Filters]
Include=WUDFRD.inf
Needs=WUDFRD_LowerFilter.NT.Filters

Menggunakan direktif AddService (Windows 10 dan versi sebelumnya)

Contoh kode berikut menunjukkan bagaimana file INF untuk driver fungsi UMDF mungkin menambahkan reflektor.

[Skeleton_Install.Services]
AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall

Dalam contoh ini, driver menentukan flag 0x2 (SPSVCINST_ASSOCSERVICE) (di-OR-kan ke dalam parameter flags di atas) untuk menetapkan reflektor sebagai driver fungsi dalam tumpukan perangkat mode kernel.

Direktif AddService juga menetapkan flag 0x000001f8 untuk mencegah penimpaan konfigurasi yang sudah ada sebelumnya untuk layanan. Untuk informasi selengkapnya tentang "flags" ini, lihat parameter flags pada direktif AddService.

Contoh kode berikut, yang diambil dari sampel WUDFVhidmini, menunjukkan arahan AddService untuk driver filter UMDF.

[hidumdf.win8.NT.Services]
AddService=WUDFRd,0x000001f8,WUDFRD_ServiceInstall  
AddService=mshidumdf, 0x000001fa, mshidumdf.AddService

[WudfVhidmini_AddReg]
HKR,,"LowerFilters",0x00010008,"WUDFRd" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND

Dalam hal ini, layanan mshidumdf dikaitkan dengan FDO untuk susunan perangkat, dan reflektor adalah filter bawah.

Menyediakan bagian penginstalan layanan

Direktif AddService mereferensikan bagian penginstalan layanan yang mirip dengan contoh kode berikut. Entri ServiceType menentukan 1 atau 0x00000001, yang menunjukkan bahwa INF menginstal dukungan untuk satu atau beberapa perangkat. Entri StartType menentukan kapan harus memulai driver. Entri ErrorControl menentukan tingkat kontrol kesalahan yang disediakan driver. Entri ServiceBinary menentukan jalur ke biner (reflektor) untuk layanan.

[WUDFRD_ServiceInstall]
DisplayName = "Windows Driver Frameworks - User-mode Driver Framework Reflector"
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\WUDFRd.sys