NDIS_QOS_SQ_PARAMETERS 구조체(ntddndis.h)
NDIS_QOS_SQ_PARAMETERS 구조에는 NDIS(서비스 품질) SQ(Scheduler Queue)의 매개 변수가 포함됩니다.
구문
typedef struct _NDIS_QOS_SQ_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_QOS_SQ_ID SqId;
NDIS_QOS_SQ_TYPE SqType;
BOOLEAN TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG CrossTcTransmitBandwidthCap;
ULONG MaxNumSqInputs;
} NDIS_QOS_SQ_PARAMETERS, *PNDIS_QOS_SQ_PARAMETERS;
멤버
Header
NDIS_QOS_SQ_PARAMETERS 구조체의 형식, 수정 버전 및 크기입니다. 이 멤버는 NDIS_OBJECT_HEADER 구조체로 형식이 지정됩니다.
미니포트 드라이버는 헤더의 Type 멤버를 NDIS_OBJECT_TYPE_DEFAULT, Revision 멤버를 NDIS_QOS_SQ_PARAMETERS_REVISION_2, Size 멤버를 NDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2 설정해야 합니다.
Flags
플래그의 비트 OR을 포함하는 ULONG 값입니다. 이러한 플래그는 SQ에서 사용하도록 설정된 하드웨어 QoS 오프로드 기능의 기타 기능 및 특성을 지정합니다. 다음 플래그가 정의됩니다.
NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
이 플래그가 설정되면 이 SQ에서 전송 대역폭 한도가 활성화됩니다.
NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
이 플래그가 설정되면 이 SQ에서 전송 대역폭 예약을 사용하도록 설정됩니다.
NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
이 플래그가 설정되면 이 SQ에서 수신 대역폭 대역폭 한도가 사용하도록 설정됩니다.
SqId
이 SQ의 SQ ID를 포함하는 NDIS_QOS_SQ_ID . NDIS는 이 ID를 할당합니다.
SqType
이 SQ의 형식을 포함하는 NDIS_QOS_SQ_TYPE . 이는 NDIS_QOS_SQ_TYPE 열거형 정의의 NdisQSQosSqSQTypeStandard일 수 있습니다.
TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
각 트래픽 클래스(0에서 NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES)를 이 SQ에서 예약할 수 있는지 여부를 지정하는 BOOLEAN 값의 배열입니다.
이 필드가 TRUE 인 모든 TC(트래픽 클래스)는 아래 표에서 읽고 유효성을 검사해야 하며 CrossTcTransmitBandwidthCap에 의해 속도도 제한됩니다.
이 필드가 FALSE 인 모든 TC는 CrossTcTransmitBandwidthCap 또는 아래 TC별 테이블에서 QoS 속도 제한에 참여하지 않습니다.
TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
각 TC의 전송 대역폭 대역폭 대/소문자(Mbps)를 지정하는 ULONG 요소의 배열입니다. 요소는 플래그가 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
설정되고 TcEnabledTable 의 해당 요소가 TRUE인 경우에만 유효합니다. 값이 0 인 요소에 상한이 없습니다.
NIC는 이 테이블에 지정된 속도를 초과하는 경우 지정된 TC에 대해 이 SQ의 전송 패킷을 큐에 대기해야 합니다.
TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
각 TC에 대한 전송 대역폭 예약을 0 ~ ULONG_MAX 상대 값으로 지정하는 ULONG 요소의 배열입니다. 요소는 플래그가 NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
설정되고 TcEnabledTable 의 해당 요소가 TRUE인 경우에만 유효합니다. 값이 0 인 요소는 이 SQ/TC의 패킷 전송이 해당 TC에 대한 기본 SQ의 예약을 공유한다는 것을 의미합니다.
다른 SQ에서 이 TC에 대한 예약을 충족하기 위해 대역폭이 필요한 경우 NIC는 지정된 TC에 대해 이 SQ의 모든 전송 패킷을 큐에 대기해야 합니다.
TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
각 TC에 대한 수신 대역폭 대역폭 대역폭을 Mbps 단위로 지정하는 ULONG 요소의 배열입니다. 요소는 플래그가 NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
설정되고 TcEnabledTable 의 해당 요소가 TRUE인 경우에만 유효합니다. 값이 0 인 요소에 상한이 없습니다.
수신 대역폭 상한을 사용하도록 설정하기 위한 선택적 기능입니다. 수신 상한 지원을 보급하는 NIC는 이 SQ의 지정된 TC가 이 배열에 지정된 속도를 초과한 후 수신 패킷을 삭제해야 합니다(NIC의 예약 구현 기준).
CrossTcTransmitBandwidthCap
플래그가 설정된 경우 TcEnabledTable 의 해당 요소가 TRUE인 TC 간 트래픽에 대한 전송 대역폭 한도를 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
지정하는 ULONG 값입니다.
MaxNumSqInputs
OS가 SQ와 연결할 가능성이 높은 vPort 수의 미니포트에 "힌트"를 제공하는 ULONG 값입니다. SQ를 만든 후에는 이 값을 수정할 수 없습니다.
미니포트는 이 힌트를 사용하여 리소스를 더 잘 관리할 수 있습니다. 미니포트는 요청을 충족하는 최상의 서비스를 제공하지만 SQ 생성 시간 또는 vPort 연결 시간에 리소스가 부족하여 실패할 수 있습니다.
이 값이 NDIS_QOS_OFFLOAD_CAPABILITIES 미니포트에서 지정한 MaxNumSQInputs 값을 초과하는 경우 미니포트에서 오류를 반환해야 합니다.
설명
NDIS_QOS_SQ_PARAMETERS 구조체는 NIC 스위치에서 만든 SQ를 열거하는 OID 쿼리 요청 OID_QOS_OFFLOAD_ENUM_SQS 반환됩니다.
NDIS_QOS_SQ_PARAMETERS 미니포트 어댑터에 새 SQ를 만드는 OID 메서드 요청 OID_QOS_OFFLOAD_CREATE_SQ 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.85 이상에서 지원됩니다. |
지원되는 최소 서버 | Windows Server 2022 |
머리글 | ntddndis.h(include ndis.h) |