다음을 통해 공유


필터 드라이버 수정에 대한 INF 파일 구성

다음 NDIS 필터 드라이버 설치 문제는 필터 드라이버 수정과 관련이 있습니다. 고유한 수정 필터 드라이버 INF 파일을 만들려면 샘플 NDIS 6.0 필터 드라이버를 조정할 수도 있습니다.

  • 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="{5cbf81bd-5055-47cd-9055-a76b2b4e3697}"
    

    Uuidgen.exe 도구를 사용하여 NetCfgInstanceId 항목에 대한 GUID를 만들 수 있습니다.

  • 필터 드라이버에 대한 INF 파일의 DDInstall 섹션에는 Ndi 키에 대한 Addreg 지시문이 포함되어야 합니다. INF 파일은 Ndi 키 아래에 서비스 항목을 지정해야 합니다. INF 파일의 service-install 섹션에 있는 ServiceBinary 항목은 필터 드라이버에 대한 이진 파일의 경로를 지정합니다. 자세한 내용은 네트워크 INF 파일의 Ndi 키 및 DDInstall.Services 섹션에 서비스관련 값 추가를 참조하세요.

  • 필터 드라이버 INF 파일의 DDInstall 섹션에는 FilterType 및 FilterRunType 항목이 있어야 합니다. 수정 필터를 지정하려면 다음 예제와 같이 INF 파일에서 FilterType 항목을 정의합니다.

    HKR, Ndi,FilterType,0x00010001 ,0x00000002
    

    FilterType 값 0x00000002 필터가 수정 필터임을 나타냅니다.

  • 다음 예제와 같이 INF 파일에서 FilterRunType 항목을 정의합니다.

    HKR, Ndi,FilterRunType,0x00010001 ,0x00000001
    

    이전 예제의 0x00000001 값은 필터 모듈이 필수임을 나타냅니다. 선택적 필터 모듈을 설치하려면 FilterRunType 항목을 0x00000002 설정합니다. 자세한 내용은 필수 필터 드라이버를 참조하세요.

  • 다음 예제에서는 수정 필터 드라이버 INF 파일이 서비스 이름을 지정하는 방법을 보여 줍니다.

    HKR, Ndi,Service,,"NdisLwf"
    

    이 예제에서 NdisLwf는 NDIS에 보고되는 드라이버 서비스의 이름입니다. 필터 드라이버 서비스의 이름은 드라이버의 이진 파일 이름과 다를 수 있지만 일반적으로 동일합니다.

  • 다음 예제에서는 필터 INF 파일이 해당 서비스를 추가할 때 필터 드라이버 서비스의 이름을 참조하는 방법을 보여 줍니다.

    [Install.Services]
    AddService=NdisLwf,,NdisLwf_Service_Inst;, common.EventLog 
    
    [NdisLwf_Service_Inst]
    DisplayName     = %NdisLwf_Desc%
    ServiceType     = 1 ;SERVICE_KERNEL_DRIVER
    StartType       = 1 ;SERVICE_SYSTEM_START
    ErrorControl    = 1 ;SERVICE_ERROR_NORMAL
    ServiceBinary   = %13%\ndislwf.sys
    LoadOrderGroup  = NDIS
    Description     = %NdisLwf_Desc%
    AddReg          = Common.Params.reg
    
  • 필터 INF 파일은 다음 예제와 같이 CoServices 특성에 대한 필터의 기본 서비스 이름 이상을 지정해야 합니다.

    HKR, Ndi,CoServices,0x00010000,"NdisLwf"
    

    CoServices 특성에 대한 자세한 내용은 Ndi 키에 서비스 관련 값 추가를 참조하세요.

  • 필터 드라이버에 대한 INF 파일의 FilterClass 값은 필터 스택에서 순서를 결정합니다. 필터 드라이버는 FilterClass 키를 정의해야 합니다. 드라이버의 클래스는 다음 표의 값 중 하나일 수 있습니다.

    Description

    scheduler

    패킷 예약 필터 서비스입니다. 이 필터 드라이버 클래스는 드라이버 스택의 암호화 클래스 필터 위에 존재할 수 있는 최상위 드라이버입니다. 패킷 스케줄러는 QoS(서비스 품질) 신호 구성 요소에 따라 패킷에 지정된 802.1p 우선 순위 분류를 감지하고 스케줄러는 우선 순위에 따라 해당 패킷 수준을 기본 드라이버로 보냅니다.

    암호화

    암호화 클래스 필터 드라이버는 스케줄러와 압축 클래스 필터 사이에 존재합니다.

    압축

    압축 클래스 필터 드라이버는 암호화와 vpn 클래스 필터 사이에 존재합니다.

    vpn

    VPN 클래스 필터 드라이버는 압축 및 부하 분산 필터 드라이버 사이에 존재합니다.

    부하 분산

    부하 분산 필터 서비스. 이 필터 드라이버 클래스는 패킷 예약 및 장애 조치(failover) 드라이버 사이에 존재합니다. 부하 분산 필터 서비스는 기본 미니포트 어댑터 집합을 통해 워크로드를 분산하여 패킷 전송 워크로드의 균형을 조정합니다.

    failover

    장애 조치(failover) 필터 서비스입니다. 이 필터 드라이버 클래스는 부하 분산과 진단 드라이버 사이에 존재합니다.

    진단

    진단 필터 드라이버는 스택의 장애 조치(failover) 드라이버 아래에 있습니다.

    custom

    사용자 지정 클래스의 필터 드라이버는 진단 드라이버 아래에 있습니다.

    provider_address

    공급자 주소 필터 드라이버는 기본 제공 Hyper-V 네트워크 가상화 ms_wnv PA(공급자 주소) 패킷을 필터링하고 작동합니다.

참고 여러 필터 드라이버에 동일한 FilterClass가 있는 경우 모두 계층화된 필터 드라이버 스택에 추가됩니다. 시스템은 동일한 FilterClass를 사용하여 각 수정 필터 드라이버에 계층화 순서를 할당합니다. 경우에 따라 시스템 관리자는 동일한 FilterClass를 가진 필터 드라이버의 상대 순서를 다시 정렬할 수 있습니다.

다음 예제에서는 샘플 FilterClass 를 보여줍니다.

HKR, Ndi,FilterClass,, compression
  • Hyper-V 확장 필터 드라이버만 Hyper-V 확장 가능 스위치에서 유효합니다. Hyper-V 확장 가능한 스위치 필터 드라이버는 다음 표의 값 중 하나를 사용하여 FilterClass 키를 정의해야 합니다.

    Description

    ms_switch_capture

    NDIS 6.30부터 Hyper-V 확장 가능한 스위치 드라이버 스택에서 드라이버 캡처가 패킷 트래픽을 모니터링합니다. 이 필터 드라이버 클래스는 스택의 사용자 지정 드라이버 아래에 있습니다.

    이 드라이버 클래스에 대한 자세한 내용은 확장 캡처를 참조하세요.

    ms_switch_filter

    NDIS 6.30부터 필터링 드라이버는 패킷 트래픽을 필터링하고 확장 가능한 스위치 드라이버 스택을 통해 패킷 배달을 위한 포트 또는 스위치 정책을 적용합니다. 이 필터 드라이버 클래스는 스택의 ms_switch_capture 드라이버 아래에 있습니다.

    이 드라이버 클래스에 대한 자세한 내용은 확장 필터링을 참조하세요.

    ms_switch_forward

    NDIS 6.30부터 전달 드라이버 필터는 필터링 드라이버와 동일한 기능을 수행합니다. 또한 전달 드라이버는 확장 가능한 스위치 포트와 패킷을 전달합니다. 이 필터 드라이버 클래스는 스택의 ms_switch_filter 드라이버 아래에 있습니다.

    이 드라이버 클래스에 대한 자세한 내용은 전달 확장을 참조하세요.

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

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

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

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

주의

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

[Common.Params.reg]

HKR, FilterDriverParams\DriverParam,  ParamDesc, , "Driverparam for lwf"
HKR, FilterDriverParams\DriverParam,  default, , "5"
HKR, FilterDriverParams\DriverParam,  type,  , "int"

HKR, FilterAdapterParams\AdapterParam,  ParamDesc, , "Adapterparam for lwf"
HKR, FilterAdapterParams\AdapterParam,  default, , "10"
HKR, FilterAdapterParams\AdapterParam,  type,  , "int"