Mengonfigurasi File INF untuk Driver Filter Pemantauan

Masalah penginstalan driver filter NDIS berikut dikaitkan dengan driver filter pemantauan:

  • Atur entri file INF Kelas ke NetService dalam file INF. Contoh berikut menunjukkan contoh entri Kelas untuk file INF.

    Class = NetService
    
  • Bagian DDInstall dalam file INF driver filter harus memiliki entri Karakteristik . Contoh berikut menunjukkan bagaimana Anda harus menentukan entri Karakteristik dalam file INF filter Anda.

    Characteristics=0x40000
    

    Nilai 0x40000 menunjukkan bahwa NCF_LW_FILTER (0x40000) diatur. Driver filter tidak boleh mengatur bendera NCF_FILTER (0x400). Nilai bendera NCF_ Xxx ditentukan dalam Netcfgx.h. Untuk informasi selengkapnya tentang bendera NCF_ Xxx , lihat Bagian DDInstall dalam File INF Jaringan.

  • Atur entri file NETCfgInstanceId INF dalam file INF, seperti yang ditunjukkan contoh berikut.

    NetCfgInstanceId="{5cbf81bf-5055-47cd-9055-a76b2b4e3697}"
    

    Anda dapat menggunakan alat Uuidgen.exe untuk membuat GUID untuk entri NetCfgInstanceId .

  • Bagian DDInstall dari file INF untuk driver filter harus menyertakan direktif Addreg untuk kunci Ndi . File INF harus menentukan entri Layanan di bawah kunci Ndi . Entri ServiceBinary di bagian penginstalan layanan dari file INF menentukan jalur ke biner untuk driver filter. Untuk informasi selengkapnya, lihat Menambahkan Nilai Service-Related ke Bagian Kunci Ndi dan DDInstall.Services dalam File INF Jaringan.

  • Bagian DDInstall dalam file INF driver filter harus memiliki entri FilterType dan FilterRunType . Untuk menentukan filter pemantauan, tentukan entri FilterType dalam file INF Anda, seperti yang ditunjukkan contoh berikut.

    HKR, Ndi,FilterType,0x00010001 ,0x00000001
    

    Nilai FilterType 0x00000001 menunjukkan bahwa filter adalah filter pemantauan.

  • Tentukan entri FilterRunType dalam file INF Anda, seperti yang ditunjukkan contoh berikut.

    HKR, Ndi,FilterRunType,0x00010001 ,0x00000002
    

    Nilai 0x00000002 dalam contoh sebelumnya menunjukkan bahwa modul filter bersifat opsional. Untuk menginstal modul filter wajib, atur entri FilterRunType ke 0x00000001. Untuk informasi selengkapnya, lihat Driver Filter Wajib.

    Catatan Kami sangat menyarankan agar driver filter ringan pemantauan (LWF) tidak boleh wajib, kecuali jika digunakan di lingkungan terkontrol di mana tidak akan ada modifikasi opsional driver LWF. Ini karena driver LWF pemantauan wajib dapat menyebabkan modifikasi opsional driver LWF gagal FilterAttach. Driver LWF pemantauan terikat pada setiap memodifikasi filter dan pengikatan berdasarkan desain untuk memfasilitasi pemantauan lalu lintas jaringan di semua tingkatan. Pertimbangkan skenario berikut:

    • Instans driver LWF pemantauan wajib diinstal melalui driver LWF yang memodifikasi opsional.
    • Driver LWF opsional yang memodifikasi lebih rendah gagal dilampirkan ke komponen yang lebih rendah. Ini akan menyebabkan handler FilterAttach driver LWF pemantauan wajib tidak dipanggil.
    • Karena sekarang instans driver LWF wajib tidak dimuat, NDIS tidak akan mengikat protokol apa pun (seperti TCP/IP) ke antarmuka atau NIC, sehingga membuat antarmuka tidak dapat digunakan.
  • Contoh berikut menunjukkan bagaimana file INF driver filter menentukan nama layanan.

    HKR, Ndi,Service,,"NdisMon"
    

    Dalam contoh ini, "NdisMon" adalah nama layanan driver seperti yang dilaporkan ke NDIS. Perhatikan bahwa nama layanan driver filter dapat berbeda dari nama biner untuk driver, tetapi biasanya sama.

  • Contoh berikut menunjukkan bagaimana file INF filter mereferensikan nama layanan driver filter saat menambahkan layanan tersebut.

    [Install.Services]
    AddService=NdisMon,,NdisMon_Service_Inst
    
    [NdisMon_Service_Inst]
    DisplayName     = %NdisMon_Desc%
    ServiceType     = 1 ;SERVICE_KERNEL_DRIVER
    StartType       = 1 ;SERVICE_SYSTEM_START
    ErrorControl    = 1 ;SERVICE_ERROR_NORMAL
    ServiceBinary   = %13%\ndisMon.sys
    LoadOrderGroup  = NDIS
    Description     = %NdisMon_Desc%
    AddReg          = Common.Params.Reg
    
  • File INF filter harus menentukan setidaknya nama layanan utama filter untuk atribut CoServices , seperti yang ditunjukkan contoh berikut.

    HKR, Ndi,CoServices,0x00010000,"NdisMon"
    

    Untuk informasi selengkapnya tentang atribut CoServices , lihat Menambahkan Nilai Service-Related ke Kunci Ndi.

  • Nilai FilterClass dalam file INF untuk driver filter menentukan urutannya dalam tumpukan memodifikasi filter. Namun, memantau driver filter tidak menentukan kunci FilterClass . Sebaliknya modul filter pemantauan yang diinstal terlebih dahulu paling dekat dengan adaptor miniport.

  • Anda harus menentukan entri berikut dalam file INF driver filter pemantauan untuk mengontrol pengikatan driver:

    HKR, Ndi\Interfaces,UpperRange,,"noupper"
    HKR, Ndi\Interfaces,LowerRange,,"nolower"
    HKR, Ndi\Interfaces, FilterMediaTypes,,"ethernet"
    

    Untuk informasi selengkapnya tentang mengontrol pengikatan driver, lihat Menentukan Hubungan Pengikatan Driver Filter.

  • File INF filter pemantauan dapat menentukan definisi parameter umum untuk driver filter, parameter yang terkait dengan adaptor tertentu, dan parameter yang terkait dengan instans tertentu (modul filter). Contoh berikut menunjukkan beberapa definisi parameter umum.

    Perhatian

    Menggunakan AddReg HKR untuk menempatkan kunci langsung di bawah status layanan adalah pelanggaran kepatuhan. Kunci ini perlu ditambahkan di bawah kunci Parameter layanan agar sesuai.

    [Common.Params.reg]
    
    HKR, FilterDriverParams\DriverParam, ParamDesc, ,"Driverparam for filter"
    HKR, FilterDriverParams\DriverParam, default, ,"5"
    HKR, FilterDriverParams\DriverParam, type,  ,"int"
    
    HKR, FilterAdapterParams\AdapterParam, ParamDesc, ,"Adapterparam for filter"
    HKR, FilterAdapterParams\AdapterParam, default, ,"10"
    HKR, FilterAdapterParams\AdapterParam, type,  ,"int"
    
    HKR, FilterInstanceParams\InstanceParam, ParamDesc, ,"Instance param for filter"
    HKR, FilterInstanceParams\InstanceParam, default, ,"15"
    HKR, FilterInstanceParams\InstanceParam, type,  ,"int"