Condividi tramite


Configurazione di un file INF per un driver di filtro di monitoraggio

I seguenti problemi di installazione del driver di filtro NDIS sono associati ai driver di filtro di monitoraggio:

  • Impostare la voce di file INF della classe su NetService nel file INF. Nell'esempio seguente viene illustrata una voce classe di esempio per il file INF.

    Class = NetService
    
  • La sezione DDInstall in un file INF del driver di filtro deve avere una voce Caratteristiche . Nell'esempio seguente viene illustrato come definire la voce Caratteristiche nel file INF del filtro.

    Characteristics=0x40000
    

    Il valore 0x40000 indica che è impostato NCF_LW_FILTER (0x40000). I driver di filtro non devono impostare il flag NCF_FILTER (0x400). I valori dei flag NCF_ Xxx sono definiti in Netcfgx.h. Per altre informazioni sui flag NCF_ Xxx , vedere la sezione DDInstall in un file INF di rete.

  • Impostare la voce di file INF NetCfgInstanceId nel file INF, come illustrato nell'esempio seguente.

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

    È possibile usare lo strumento Uuidgen.exe per creare il GUID per la voce NetCfgInstanceId .

  • La sezione DDInstall del file INF per un driver di filtro deve includere una direttiva Addreg per una chiave Ndi . Il file INF deve specificare la voce Servizio sotto la chiave Ndi . La voce ServiceBinary nella sezione service-install del file INF specifica il percorso del file binario per il driver di filtro. Per altre informazioni, vedere Aggiunta di valori Service-Related alla sezione Chiave Ndi e DDInstall.Services in un file INF di rete.

  • La sezione DDInstall in un file INF del driver di filtro deve contenere voci FilterType e FilterRunType . Per specificare un filtro di monitoraggio, definire la voce FilterType nel file INF, come illustrato nell'esempio seguente.

    HKR, Ndi,FilterType,0x00010001 ,0x00000001
    

    Il valore FilterType 0x00000001 indica che il filtro è un filtro di monitoraggio.

  • Definire la voce FilterRunType nel file INF, come illustrato nell'esempio seguente.

    HKR, Ndi,FilterRunType,0x00010001 ,0x00000002
    

    Il valore 0x00000002 nell'esempio precedente indica che il modulo di filtro è facoltativo. Per installare un modulo di filtro obbligatorio, impostare la voce FilterRunType su 0x00000001. Per altre informazioni, vedere Driver di filtro obbligatori.

    Nota È consigliabile che un driver di filtro leggero di monitoraggio (LWF) non sia obbligatorio, a meno che non venga usato in un ambiente controllato in cui non saranno presenti driver LWF facoltativi. Ciò è dovuto al fatto che un driver LWF di monitoraggio obbligatorio può causare l'esito negativo di FilterAttach per la modifica facoltativa dei driver LWF. Un driver LWF di monitoraggio è associato a ogni filtro di modifica e associazione in base alla progettazione per facilitare il monitoraggio del traffico di rete a tutti i livelli. Si consideri lo scenario seguente:

    • Un'istanza di un driver LWF di monitoraggio obbligatorio viene installata su un driver LWF di modifica facoltativo.
    • Il driver LWF facoltativo di modifica inferiore non riesce a collegarsi a un componente inferiore. In questo modo il gestore FilterAttach del driver LWF di monitoraggio obbligatorio non verrà chiamato.
    • Poiché ora non viene caricata un'istanza di un driver LWF obbligatorio, NDIS non associa alcun protocollo (ad esempio TCP/IP) all'interfaccia o alla scheda di interfaccia di rete, rendendo l'interfaccia inutilizzabile.
  • Nell'esempio seguente viene illustrato come un file INF del driver di filtro specifica il nome del servizio.

    HKR, Ndi,Service,,"NdisMon"
    

    In questo esempio , "NdisMon" è il nome del servizio del driver perché viene segnalato a NDIS. Si noti che il nome del servizio di un driver di filtro può essere diverso dal nome del file binario per il driver, ma in genere sono uguali.

  • Nell'esempio seguente viene illustrato in che modo il file INF del filtro fa riferimento al nome del servizio del driver di filtro quando aggiunge tale servizio.

    [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
    
  • Un file INF di filtro deve specificare almeno il nome del servizio primario del filtro per l'attributo CoServices , come illustrato nell'esempio seguente.

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

    Per altre informazioni sull'attributo CoServices , vedere Aggiunta di valori Service-Related alla chiave Ndi.

  • Il valore FilterClass nel file INF per un driver di filtro determina l'ordine in uno stack di filtri di modifica. Tuttavia, i driver di filtro di monitoraggio non definiscono la chiave FilterClass . Il modulo di filtro di monitoraggio installato per primo è invece più vicino all'adattatore miniport.

  • Per controllare le associazioni driver, è necessario definire le voci seguenti nel file INF del driver di filtro di monitoraggio:

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

    Per altre informazioni sul controllo delle associazioni di driver, vedere Impostazione delle relazioni di associazione driver di filtro.

  • Un file INF del filtro di monitoraggio può specificare definizioni di parametri comuni per il driver di filtro, i parametri associati a un adattatore specifico e i parametri associati a un'istanza specifica (modulo di filtro). L'esempio seguente mostra alcune definizioni di parametri comuni.

    Attenzione

    L'uso di HKR AddReg per inserire le chiavi direttamente nello stato del servizio è una violazione di conformità. Queste chiavi devono essere aggiunte sotto la chiave Parameters del servizio per essere conformi.

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