NDIS_RSS_SET_INDIRECTION_ENTRY 구조체(ntddndis.h)

경고

이 항목의 일부 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 미리 출시된 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

RSSv2는 Windows 10 버전 1803에서만 미리 보기로 제공됩니다.

NDIS_RSS_SET_INDIRECTION_ENTRY 구조체는 단일 간접 참조 테이블 항목을 설정하는 명령을 나타냅니다. OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID에 사용되는 NDIS_RSS_SET_INDIRECTION_ENTRIES 구조 체에 포함되어 있습니다. OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES RSS 버전 2(RSSv2)동기 OID입니다.

구문

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

멤버

SwitchId

VPort가 있는 NIC 스위치를 나타내는 NDIS_NIC_SWITCH_ID 값입니다.

스위치 식별자는 0과 네트워크 어댑터가 지원하는 스위치 수 사이의 정수입니다. NDIS_DEFAULT_SWITCH_ID 값은 기본 네트워크 어댑터 스위치를 나타냅니다.

이 필드는 Native RSS 사례에서 0 으로 설정해야 합니다.

VPortId

VPort 식별자를 나타내는 NDIS_NIC_SWITCH_VPORT_ID 값입니다.

이 필드는 Native RSS 사례에서 0 으로 설정해야 합니다.

Flags

플래그의 비트 OR을 포함하는 ULONG 값입니다. 이 멤버는 이 구조체의 정보를 받을 자격이 있습니다.

가능한 플래그는 다음과 같습니다.

의미
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
NDIS_RSS_SET_INDIRECTION_ENTRY 크기 조정 엔터티의 기본 프로세서를 참조하고 있음을 나타냅니다. 간접 참조 테이블은 사용되지 않습니다. 기본 프로세서가 *비활성*(RSS 사용)인 경우 미니포트 드라이버는 RSS를 사용하지 않도록 설정할 때 기본 프로세서가 될 프로세서를 알 수 있도록 이 플래그가 설정된 항목에 대한 업데이트를 추적해야 합니다.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
NDIS_RSS_SET_INDIRECTION_ENTRY 크기 조정 엔터티의 기본 프로세서를 참조하고 있음을 나타냅니다. 기본 프로세서는 해시되지 않은 패킷을 처리합니다. 간접 참조 테이블은 사용되지 않습니다. 기본 프로세서가 *비활성*(RSS를 사용하지 않도록 설정됨)인 경우 미니포트 드라이버는 RSS를 사용하도록 설정할 때 어떤 프로세서가 기본값인지 알 수 있도록 이 플래그가 설정된 항목에 대한 업데이트를 추적해야 합니다.

IndirectionTableIndex

현재 CPU를 가리키고 다른 프로세서를 가리키도록 수정 중인 ITE의 해시 인덱스입니다. 간접 테이블이 비활성 상태인 경우(RSS를 사용하지 않도록 설정) 미니포트 드라이버는 RSS를 사용하도록 설정할 때 올바른 간접 테이블이 있도록 간접 테이블 항목에 대한 업데이트를 추적해야 합니다.

TargetProcessorNumber

ITE가 완료 시 가리킬 대상 프로세서 번호입니다. 미니포트 드라이버는 ITE가 현재 프로세서에서 현재 프로세서로 이동하는 데 성공해야 합니다.

EntryStatus

이 항목에 대한 이동 작업의 상태 나타내는 NDIS_STATUS 코드입니다. NDIS_RSS_SET_INDIRECTION_ENTRY 동기 OID 호출의 컨텍스트에서 사용되므로 미니포트 드라이버는 이 멤버에 대한 NDIS_STATUS_PENDING 반환할 수 없습니다.

미니포트 드라이버의 구현을 간소화하기 위해 상위 계층 프로토콜은 이 필드를 NDIS_STATUS_PENDING 초기화합니다. 미니포트 드라이버는 성공 또는 실패 NDIS 상태 코드로 NDIS_STATUS_PENDING 덮어써야 합니다. 상위 계층에서 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID가 완료될 때 이 필드가 여전히 NDIS_STATUS_PENDING 감지되면 시스템 버그 검사 발생하고 미니포트 드라이버가 잘못되었음을 나타냅니다.

중요

NDIS_RSS_SET_INDIRECTION_ENTRIES 구조체에 포함된 그룹의 모든 NDIS_RSS_SET_INDIRECTION_ENTRY 구조체는 동일한 EntryStatus로 표시되어야 합니다.

이 이동 명령으로 오류가 발생하면 EntryStatus를 해당 오류 조건에 대한 다음 상태 코드 중 하나로 설정합니다.

상태 코드 오류 조건
NDIS_STATUS_INVALID_PARAMETER
  • SwitchId 또는 VPortId 멤버가 잘못되었습니다.
  • Flags 멤버가 잘못되었습니다.
  • IndirectionTableIndex 멤버가 NDIS_RECEIVE_SCALE_PARAMETERS_V2 구조에서 현재 구성된 NumberOfIndirectionTableEntries를 초과합니다.
NDIS_STATUS_INVALID_PORT_STATE VPort가 활성화되지 않았거나 RSSv2 OID를 수락하지 못하게 하는 다른 상태에 있습니다.
NDIS_STATUS_NOT_ACCEPTED 행위자 CPU가 잘못되었습니다.
NDIS_STATUS_INVALID_DATA 활성 스티어링 매개 변수의 경우 새 프로세서는 어댑터의 RSS 프로세서 집합에 속하지 않습니다. 비활성 매개 변수는 추적하기만 하면 됩니다. 나중에 RSS 상태 전환 중에 유효성이 검사됩니다( 기 또는 끄기).
NDIS_STATUS_NO_QUEUES 명령 항목 그룹이 해당 그룹에서 지정한 VPort에 대한 "큐 수" 검사 실패합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.80 이상에서 지원됩니다.
머리글 ntddndis.h(Ndis.h 포함)

추가 정보

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

수신 쪽 크기 조정 버전 2(RSSv2)

NDIS 6.80의 동기 OID 요청 인터페이스