다음을 통해 공유


열거형 키워드

NDIS 6.0 이상 버전의 NDIS는 네트워크 디바이스의 미니포트 드라이버를 위한 표준화된 열거형 키워드를 제공합니다. 열거형 키워드는 메뉴에 목록으로 표시되는 값과 연결됩니다.

다음 예제에서는 열거형 키워드에 대한 INF 파일 정의를 보여줍니다.

HKR, Ndi\params\<SubkeyName>, ParamDesc, 0, "%<SubkeyName>%"
HKR, Ndi\params\<SubkeyName>, Type, 0, "enum"
HKR, Ndi\params\<SubkeyName>, Default, 0, "3"
HKR, Ndi\params\<SubkeyName>, Optional, 0, "0"
HKR, Ndi\params\<SubkeyName>\enum, "0", 0, "%Disabled%"
HKR, Ndi\params\<SubkeyName>\enum, "1", 0, "%Tx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "2", 0, "%Rx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "3", 0, "%Rx & Tx Enabled%"

일반적인 열거형 키워드는 다음과 같습니다.

*SpeedDuplex
디바이스에서 지원하는 속도 및 이중 설정입니다. 디바이스 INF 파일은 연결된 디바이스에서 지원하는 설정만 나열해야 합니다. 즉, 전체 이중 모드만 지원할 수 있는 이더넷 10/100 디바이스의 경우 기가비트 또는 더 빠른 속도 또는 반이중에 대한 설정은 연결된 INF 파일에 나열되지 않아야 합니다.

열거된 값이 0에서 10으로 이미 정의되지 않은 속도 값은 Mbps에서 직접 값인 숫자로 설정할 수 있습니다. 직접 값은 1,000Mbps(1Gbps) 이상이어야 합니다. 다음은 속도를 직접 지정하는 몇 가지 예입니다.

SpeedDuplex 값 결과 속도
1,000 1Gbps
1만 10Gbps
25,000 25Gbps
50,000 50Gbps
100,000 100Gbps

*FlowControl
송신 또는 수신 경로에서 흐름 제어를 사용하거나 사용하지 않도록 설정하는 디바이스의 기능입니다.

메모 현재 이더넷 디바이스는 흐름 제어를 지원하며 LAN용 Windows 8 기본 제공 드라이버는 기본적으로 흐름 제어를 사용하도록 설정되어 있습니다. 커널 디버거가 이러한 LAN 어댑터 중 하나에 연결되면 NIC는 흐름 제어 일시 중지 프레임을 네트워크에 푸시하기 시작합니다. 대부분의 네트워크 스위치는 동일한 허브에 연결된 다른 모든 컴퓨터의 네트워크를 일시적으로 중단하여 반응합니다. 이는 일반적인 개발 시나리오이며 최종 사용자 환경은 바람직하지 않고 진단하기 어렵습니다.

메모 클라이언트 및 서버 기본값은 동일하지 않습니다. 은 아래 기본값 표를 참조하세요.

이러한 이유로 Windows 8 이상에서는 컴퓨터에서 디버깅을 사용하도록 설정할 때(예: 명령줄에서 bcdedit /set debug 를 입력하여) NDIS에서 흐름 제어를 자동으로 사용하지 않도록 설정합니다. 커널 디버깅을 사용하도록 설정하고 미니포트가 NdisReadConfiguration 을 호출하고 키워드 매개 변수에 대해 "*FlowControl"을 전달하면 NDIS는 구성된 값을 재정의하고 0을 반환합니다.

디버깅하는 동안 흐름 제어를 사용하도록 설정해야 하는 경우 NDIS는 이를 수행할 수 있도록 AllowFlowControlUnderDebugger 레지스트리 값을 제공합니다. AllowFlowControlUnderDebugger 레지스트리 값은 NDIS가 흐름 제어를 사용하지 않도록 설정하는 것을 방지하고 NIC가 구성된 동작을 유지할 수 있도록 합니다. 다음 레지스트리 키에서 찾을 수 있습니다.

\ HKEY_LOCAL_MACHINE체계\CurrentControlSet\서비스\NDIS\매개 변수

이 레지스트리 값을 0x00000001 설정합니다.

값이 없으면 AllowFlowControlUnderDebugger 이름 및 REG_DWORD 형식으로 값을 만들고 0x00000001 설정할 수 있습니다.

*PriorityVLANTag
디바이스에서 패킷 우선 순위 및 가상 랜(VLANs)을 위한 802.1Q 태그 삽입 기능을 활성화 또는 비활성화했는지를 나타내는 값입니다. 이 키워드는 장치가 패킷 우선 순위나 VLAN 태그를 활성화했는지 여부를 나타내지 않습니다. 대신 다음을 설명합니다.

  • 송신 작업 중에 디바이스에서 802.1Q 태그를 삽입하는지 여부
  • NET_BUFFER_LIST의 OOB (대역 외) 정보에서 802.1Q 태그 정보를 포함하고 있는지 여부
  • 수신 작업 중에 디바이스가 OOB에 802.1Q 태그를 복사하는지 여부

미니포트 드라이버는 *PriorityVLANTag 설정에 관계없이 모든 수신 패킷에서 802.1Q 헤더를 제거해야 합니다. 802.1Q 헤더가 패킷에 남아 있으면 다른 드라이버가 패킷을 올바르게 구문 분석하지 못할 수 있습니다.

수신 경로에서 Rx 플래그를 사용하는 경우 미니포트 드라이버는 제거된 802.1Q 헤더를 OOB에 복사해야 합니다.

그렇지 않으면 Rx 플래그를 사용하지 않도록 설정하면 미니포트 드라이버가 제거된 802.1Q 헤더를 OOB에 복사해서는 안 됩니다.

전송 경로에서 Tx 플래그를 사용하는 경우 미니포트 드라이버는 다음을 수행해야 합니다.

  • 나가는 각 패킷에 802.1Q 헤더를 삽입하고 OOB의 데이터로 채웁니다(OOB에 0이 아닌 데이터가 있는 경우).
  • NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES에서 적절한 MacOptions (NDIS_MAC_OPTION_8021P_PRIORITYNDIS_MAC_OPTION_8021Q_VLAN)을 광고합니다.

그렇지 않으면 Tx 플래그를 사용하지 않도록 설정한 경우 다음을 수행합니다.

  • 미니포트 필터는 OOB에서 802.1Q 정보를 적용해서는 안 됩니다(따라서 태그를 삽입하지 않음).
  • 미니포트 필터는 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES에 적절한 MacOptions를 광고해서는 안 됩니다.

메모 미니포트 드라이버가 NDIS QoS(서비스 품질)를 지원하는 경우 *QOS 키워드 값도 읽어야 합니다. *QOS 키워드 값에 따라 *PriorityVLANTag 키워드 값은 다르게 해석됩니다. 자세한 내용은 NDIS QoS대한 표준화된 INF 키워드를 참조하세요.

*InterruptModeration
디바이스가 인터럽트 조정을 사용하도록 설정했는지 아니면 사용하지 않도록 설정했는지를 설명하는 값입니다. 인터럽트 조정 알고리즘은 디바이스에 따라 다릅니다. 디바이스 제조업체는 비표준 키워드를 사용하여 알고리즘 설정을 지원할 수 있습니다. 인터럽트 조정에 대한 자세한 내용은 인터럽트 조정참조하세요.

*RSS
디바이스가 RSS(수신측 배율)를 사용하도록 설정했는지 아니면 사용하지 않도록 설정했는지를 설명하는 값입니다. RSS에 대한 자세한 내용은 수신측 크기 조정참조하세요.

*HeaderDataSplit
장치에서 헤더-데이터 분할이 활성화 또는 비활성화되었는지를 설명하는 값입니다. 헤더 데이터 분할에 대한 자세한 내용은 Header-Data 분할참조하세요.

다음 키워드는 연결 오프로드 서비스와 연결됩니다.

*TCPConnectionOffloadIPv4

*TCPConnectionOffloadIPv6

연결 오프로드 키워드에 대한 자세한 내용은 레지스트리 값을 사용하여 연결 오프로드 사용 및 사용 안 함을 참조하세요.

다음 키워드는 작업 오프로드 서비스와 연결됩니다.

*IPChecksumOffloadIPv4

*TCPChecksumOffloadIPv4

*TCPChecksumOffloadIPv6

*UDPChecksumOffloadIPv4

*UDPChecksumOffloadIPv6

*LsoV1IPv4

*LsoV2IPv4

메모 IPv4를 통해 큰 송신 오프로드 버전 1(LSOv1) 및 LSOv2를 모두 지원하는 디바이스의 경우 INF 파일 및 레지스트리 값에 *LsoV2IPv4 키워드만 사용해야 합니다. 예를 들어 *LsoV2IPv4 키워드가 INF 파일에 표시되고 *LsoV1IPv4 키워드가 레지스트리에 표시되는 경우(또는 그 반대의 경우도 마찬가지) *LsoV2IPv4 키워드가 항상 우선합니다.

*LsoV2IPv6

*IPsecOffloadV1IPv4

*IPsecOffloadV2

*IPsecOffloadV2IPv4

*TCPUDPChecksumOffloadIPv4

*TCPUDPChecksumOffloadIPv6

TCP/IP 오프로드 키워드에 대한 자세한 내용은 레지스트리 값을 사용하여 작업 오프로드 사용 및 사용 안 함을 참조하세요.

이 항목의 끝에 있는 테이블의 열에서는 열거형 키워드에 대한 다음 특성을 설명합니다.

서브 키 이름
INF 파일에서 지정해야 하며 레지스트리에 표시되는 키워드의 이름입니다.

ParamDesc
SubkeyName과 연결된 표시 텍스트입니다.

가치
목록의 각 옵션과 연결된 열거형 정수 값입니다. 이 값은 NDI\params\SubkeyName 값에\ 저장됩니다.

EnumDesc
메뉴에 표시되는 각 값과 연결된 표시 텍스트입니다.

기본값
메뉴의 기본값입니다.

다음 표에서는 모든 키워드를 나열하고 드라이버가 이전 특성에 사용해야 하는 값을 설명합니다. 키워드에 대한 자세한 내용은 WDK 설명서에서 키워드를 검색합니다.

서브 키 이름 ParamDesc 가치 EnumDesc
*SpeedDuplex 속도 및 듀플렉스 0(기본값) 자동 협상
1 10 Mbps 반이중
2 10Mbps 전체 이중
3 100Mbps 반이중
4 100 Mbps 전체 이중
5 1.0Gbps 반이중
6 1.0Gbps 전체 이중
7 10Gbps 전체 이중
8 (여덟) 20Gbps 전체 이중
9 40Gbps 전체 이중
10 100Gbps 전체 이중
*FlowControl 흐름 제어 0(서버 기본값) Tx 및 Rx 사용 안 함
1 전송 활성화
2 Rx 활성화됨
3(클라이언트 기본값) Rx 및 Tx 사용
4 자동 협상
*PriorityVLANTag 패킷 우선 순위 및 VLAN 0 패킷 우선 순위 및 VLAN 사용 안 함
1 패킷 우선 순위 사용
2 VLAN 활성화됨
3(기본값) 패킷 우선 순위 및 VLAN 활성화
*InterruptModeration 인터럽트 관리 0 비활성화
1(기본값) 활성화됨
*RSS 수신측 크기 조정 0 비활성화
1(기본값) 활성화됨
*HeaderDataSplit 헤더 데이터 분할 0(기본값) 비활성화
1 활성화됨
*TCPConnectionOffloadIPv4 TCP 연결 오프로드(IPv4) 0 비활성화
1(기본값) 활성화됨
*TCPConnectionOffloadIPv6 TCP 연결 오프로드(IPv6) 0 비활성화
1(기본값) 활성화됨
*IPChecksumOffloadIPv4 IPv4 체크섬 오프로드 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Rx 및 Tx 사용
*TCPChecksumOffloadIPv4 TCP 체크섬 오프로드 (IPv4) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Rx 및 Tx 사용
*TCPChecksumOffloadIPv6 TCP 체크섬 오프로드 (IPv6) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Rx 및 Tx 사용
*UDPChecksumOffloadIPv4 UDP 체크섬 오프로드 (IPv4) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Rx 및 Tx 사용
*UDPChecksumOffloadIPv6 UDP 체크섬 오프로드 (IPv6) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Rx 및 Tx 사용
*LsoV1IPv4 대용량 전송 오프로드 버전 1(IPv4) 0 비활성화
1(기본값) 활성화됨
*LsoV2IPv4 대량 송신 오프로드 버전 2 (IPv4) (LSO) 0 비활성화
1(기본값) 활성화됨
*LsoV2IPv6 대형 전송 오프로드 버전 2(IPv6) 0 비활성화
1(기본값) 활성화됨
*IPsecOffloadV1IPv4 IPsec 오프로드 버전 1(IPv4) 0 비활성화
1 인증 헤더 사용
2 ESP 활성화됨
3(기본값) 인증 헤더 및 ESP 사용
*IPsecOffloadV2 IPsec 오프로드 0 비활성화
1 인증 헤더가 활성화됨
2 ESP 활성화됨
3(기본값) 인증 헤더 및 ESP 사용
*IPsecOffloadV2IPv4 IPsec 오프로드(IPv4에만 해당) 0 비활성화
1 인증 헤더 활성화됨
2 ESP 활성화됨
3(기본값) 인증 헤더 및 ESP 사용
*TCPUDPChecksumOffloadIPv4 TCP/UDP 체크섬 오프로드(IPv4) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Tx 및 Rx 사용
*TCPUDPChecksumOffloadIPv6 TCP/UDP 체크섬 오프로드(IPv6) 0 비활성화
1 전송 활성화
2 Rx 활성화됨
3(기본값) Tx 및 Rx 사용