다음을 통해 공유


모니터링 필터 드라이버에 대한 INF 파일 구성

다음 NDIS 필터 드라이버 설치 문제는 모니터링 필터 드라이버와 관련이 있습니다.

  • INF 파일의 클래스 INF 파일 항목을 NetService로 설정합니다. 다음 예제에서는 INF 파일에 대한 샘플 클래스 항목을 보여줍니다.

    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 항목은 필터 드라이버에 대한 이진 파일의 경로를 지정합니다. 자세한 내용은 네트워크 INF 파일의 Ndi 키 및 DDInstall.Services 섹션에Service-Related 값 추가를 참조하세요.

  • 필터 드라이버 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 드라이버의 instance 선택적 수정 LWF 드라이버를 통해 설치됩니다.
    • 하위 수정 선택적 LWF 드라이버가 하위 구성 요소에 연결되지 않습니다. 이렇게 하면 필수 모니터링 LWF 드라이버의 FilterAttach 처리기가 호출되지 않습니다.
    • 이제 필수 LWF 드라이버의 instance 로드되지 않으므로 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 특성에 대한 자세한 내용은 Ndi 키에 Service-Related 값 추가를 참조하세요.

  • 필터 드라이버에 대한 INF 파일의 FilterClass 값은 필터 수정 스택에서 순서를 결정합니다. 그러나 모니터링 필터 드라이버는 FilterClass 키를 정의하지 않습니다. 대신 먼저 설치된 모니터링 필터 모듈은 미니포트 어댑터에 가장 가깝습니다.

  • 드라이버 바인딩을 제어하려면 모니터링 필터 드라이버 INF 파일에서 다음 항목을 정의해야 합니다.

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

    드라이버 바인딩을 제어하는 방법에 대한 자세한 내용은 필터 드라이버 바인딩 관계 지정을 참조하세요.

  • 모니터링 필터 INF 파일은 필터 드라이버에 대한 일반적인 매개 변수 정의, 특정 어댑터와 연결된 매개 변수 및 특정 instance 연결된 매개 변수(필터 모듈)를 지정할 수 있습니다. 다음 예제에서는 몇 가지 일반적인 매개 변수 정의를 보여 줍니다.

    주의

    HKR AddReg를 사용하여 키를 서비스 상태에 직접 배치하는 것은 규정 준수 위반입니다. 이러한 키를 준수하려면 서비스의 매개 변수 키 아래에 추가해야 합니다.

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