共用方式為


設定監視篩選驅動程式的 INF 檔案

下列 NDIS 篩選驅動程式安裝問題與監視篩選驅動程式相關聯:

  • 在 INF 檔案中,將 類別 INF 檔案專案設定為 NetService 。 下列範例顯示 INF 檔案的範例 Class 專案。

    Class = NetService
    
  • 篩選驅動程式 INF 檔案中的 DDInstall 區段必須有 特性 專案。 下列範例示範如何在篩選 INF 檔案中定義 特性 專案。

    Characteristics=0x40000
    

    0x40000值表示已設定NCF_LW_FILTER (0x40000) 。 篩選驅動程式不得設定NCF_FILTER (0x400) 旗標。 NCF_ Xxx 旗標的值定義在 Netcfgx.h中。 如需 NCF_ Xxx 旗標的詳細資訊,請參閱 網路 INF 檔案中的 DDInstall 區段

  • 在 INF 檔案中設定 NetCfgInstanceId INF 檔案專案,如下列範例所示。

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

    您可以使用 Uuidgen.exe 工具來建立 NetCfgInstanceId 專案的 GUID。

  • 篩選驅動程式 INF 檔案的DDInstall區段必須包含Ndi索引鍵的Addreg指示詞。 INF 檔案必須在Ndi機碼下指定服務專案。 INF 檔案之service-install區段中的ServiceBinary專案會指定篩選驅動程式之二進位檔的路徑。 如需詳細資訊,請參閱將Service-Related值新增至網路 INF 檔案中的 Ndi 機碼和 DDInstall.Services 一節

  • 篩選驅動程式 INF 檔案中的DDInstall區段必須有FilterType 和 FilterRunType專案。 若要指定監視篩選,請在 INF 檔案中定義 FilterType 專案,如下列範例所示。

    HKR, Ndi,FilterType,0x00010001 ,0x00000001
    

    FilterType值0x00000001指出篩選準則是監視篩選。

  • 在 INF 檔案中定義 FilterRunType 專案,如下列範例所示。

    HKR, Ndi,FilterRunType,0x00010001 ,0x00000002
    

    上述範例中的0x00000002值表示篩選模組是選擇性的。 若要安裝強制篩選模組,請將 FilterRunType 專案設定為 0x00000001。 如需詳細資訊,請參閱 強制篩選驅動程式

    注意 強烈建議監視輕量型篩選 (LWF) 驅動程式不一定要使用,除非它是用於沒有選擇性修改 LWF 驅動程式的受控制環境中。 這是因為強制監視 LWF 驅動程式可能會導致選擇性修改 LWF 驅動程式失敗 FilterAttach。 監視 LWF 驅動程式會依設計系結于每個修改篩選和系結上,以利監視所有層級的網路流量。 請考慮下列案例:

    • 強制監視 LWF 驅動程式的實例是透過選擇性的修改 LWF 驅動程式來安裝。
    • 修改選擇性 LWF 驅動程式的較低版本無法附加至較低的元件。 這會導致強制監視 LWF 驅動程式的 FilterAttach 處理常式無法呼叫。
    • 由於現在未載入強制 LWF 驅動程式的實例,因此 NDIS 不會將任何通訊協定系結 (,例如 TCP/IP) 至介面或 NIC,因此會將介面轉譯為無法使用。
  • 下列範例示範篩選驅動程式 INF 檔案如何指定服務的名稱。

    HKR, Ndi,Service,,"NdisMon"
    

    在此範例中,「NdisMon」 是驅動程式服務的名稱,因為它會回報給 NDIS。 請注意,篩選驅動程式服務的名稱可能會與驅動程式的二進位檔名稱不同,但通常是相同的。

  • 下列範例顯示篩選 INF 檔案在新增該服務時,如何參考篩選驅動程式服務的名稱。

    [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
    
  • 篩選 INF 檔案必須至少指定 CoServices 屬性篩選的主要服務名稱,如下列範例所示。

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

    如需 CoServices 屬性的詳細資訊,請參閱 將Service-Related值新增至 Ndi 索引鍵

  • 篩選驅動程式 INF 檔案中的 FilterClass 值會決定其在修改篩選準則堆疊中的順序。 不過,監視篩選驅動程式不會定義 FilterClass 索引鍵。 相反地,先安裝的監視篩選模組最接近迷你埠介面卡。

  • 您必須在監視篩選驅動程式 INF 檔案中定義下列專案,以控制驅動程式系結:

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

    如需控制驅動程式系結的詳細資訊,請參閱 指定篩選驅動程式系結關聯性

  • 監視篩選 INF 檔案可以指定篩選驅動程式的一般參數定義、與特定介面卡相關聯的參數,以及與特定實例相關聯的參數, (篩選模組) 。 下列範例顯示一些常見的參數定義。

    警告

    使用 HKR AddReg 將金鑰直接放在服務狀態之下是合規性違規。 這些金鑰必須在服務的 Parameters 金鑰下新增,才能符合規範。

    [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"