Share via


OID_SWITCH_NIC_REQUEST

OID_SWITCH_NIC_REQUEST OID(개체 식별자) 메서드 요청은 Hyper-V 확장 가능 스위치 외부 네트워크 어댑터에 OID 요청을 캡슐화하고 전달하는 데 사용됩니다. 이렇게 하면 캡슐화된 OID 요청이 외부 네트워크 어댑터에 바인딩된 기본 물리적 네트워크 어댑터에 대해 드라이버에 배달될 수 있습니다.

이 OID 요청은 확장 가능한 스위치 포트에 연결된 다른 네트워크 어댑터에 발급된 OID 요청을 캡슐화하는 데도 사용됩니다. 이 경우 캡슐화된 OID 요청은 확장 가능한 스위치 드라이버 스택을 통해 전달되어 확장별로 검사됩니다.

NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 NDIS_SWITCH_NIC_OID_REQUEST 구조체에 대한 포인터를 포함합니다. 이 구조체는 OID 요청에 대한 전달 정보를 지정합니다. 이 구조체에는 전달되는 OID 요청의 원래 NDIS_OID_REQUEST 구조체에 대한 포인터도 포함됩니다.

설명

OID 요청이 Hyper-V 확장 가능한 스위치 인터페이스에 도착하면 확장 가능한 스위치 제어 경로 아래로 전달하기 위해 이를 캡슐화합니다. 이러한 OID 요청에는 다음이 포함됩니다.

  • 하드웨어는 IPsec(인터넷 프로토콜 보안), VMQ(가상 머신 큐) 및 SR-IOV(단일 루트 I/O 가상화)에 대한 요청을 포함하여 OID 요청을 오프로드합니다. 이러한 OID 요청은 Hyper-V 부모 파티션의 관리 운영 체제에서 실행되는 지나치게 많은 프로토콜 또는 필터 드라이버에서 발급됩니다.

    이러한 OID 요청이 확장 가능한 스위치 인터페이스에 도착하면 확장 가능한 스위치의 프로토콜 에지가 NDIS_SWITCH_NIC_OID_REQUEST 구조 내에서 OID 요청을 캡슐화합니다. 프로토콜 에지는 다음과 같은 방식으로 이 구조체의 멤버를 설정합니다.

    • DestinationPortIdDestinationNicIndex 멤버는 외부 네트워크 어댑터에 해당하는 값으로 설정됩니다.

    • OID 요청이 Hyper-V 자식 파티션에서 시작된 경우 SourcePortIdSourceNicIndex 멤버는 파티션에서 사용되는 포트 및 네트워크 어댑터에 해당하는 값으로 설정됩니다. 그렇지 않으면 SourcePortIdSourceNicIndex 멤버가 0으로 설정됩니다.

      참고 확장은 OID 요청을 전달하거나 리디렉션하는 경우 이러한 멤버의 값을 유지해야 합니다.

    • OidRequest 멤버는 캡슐화된 OID 요청에 대한 NDIS_OID_REQUEST 구조체에 대한 포인터로 설정됩니다.

    그런 다음 프로토콜 에지는 OID_SWITCH_NIC_REQUEST 요청을 실행하여 캡슐화된 OID 요청을 확장 가능한 스위치 제어 경로를 외부 네트워크 어댑터로 전달합니다.

    기본 전달 확장은 캡슐화된 하드웨어 오프로드 OID 요청을 외부 네트워크 어댑터에 바인딩된 실제 네트워크 어댑터로 리디렉션할 수 있습니다. 예를 들어 확장이 외부 네트워크 어댑터에 바인딩된 확장 가능한 스위치 팀의 물리적 네트워크 어댑터를 지원하는 경우 하드웨어 오프로드를 지원하는 LBFO(부하 분산 장애 조치(failover) 팀의 물리적 어댑터에 OID_SWITCH_NIC_REQUEST 요청을 전달할 수 있습니다. 이 절차에 대한 자세한 내용은 물리적 네트워크 어댑터에 하드웨어 오프로드 OID 요청 관리를 참조하세요.

    확장 가능한 스위치 팀에 대한 자세한 내용은 물리적 네트워크 어댑터 구성 유형을 참조하세요.

  • OID_802_3_ADD_MULTICAST_ADDRESS OID_802_3_DELETE_MULTICAST_ADDRESS 포함한 멀티캐스트 OID 요청 이러한 OID 요청은 Hyper-V 자식 파티션의 관리 운영 체제 또는 게스트 운영 체제에서 실행되는 프로토콜 및 필터 드라이버를 과도하게 사용하여 발급됩니다.

    이러한 OID 요청이 확장 가능한 스위치 인터페이스에 도착하면 확장 가능한 스위치의 프로토콜 에지가 NDIS_SWITCH_NIC_OID_REQUEST 구조 내에서 OID 요청을 캡슐화합니다. 또한 프로토콜 에지는 SourcePortIdSourceNicIndex 멤버를 OID 요청이 시작된 포트 및 네트워크 어댑터의 해당 값으로 설정합니다. 그런 다음 프로토콜 에지는 OID_SWITCH_NIC_REQUEST 요청을 실행하여 기본 확장으로 검사할 확장 가능한 스위치 제어 경로 아래로 캡슐화된 OID 요청을 전달합니다.

    참고 이 경우 프로토콜 에지는 DestinationPortIdDestinationNicIndex 멤버를 0으로 설정합니다. 이렇게 하면 캡슐화된 OID 요청이 제어 경로의 확장에 전달되도록 지정합니다.

    기본 전달 확장은 이러한 캡슐화된 OID 요청을 검사하고 지정된 멀티캐스트 주소 정보를 유지할 수 있습니다. 예를 들어 확장이 확장 가능한 스위치 포트로 전달하는 멀티캐스트 패킷을 시작하는 경우 이 정보가 필요할 수 있습니다.

    자세한 내용은 Hyper-V 자식 파티션에서 OID 요청 전달을 참조하세요.

또한 전달 확장은 캡슐화된 OID 요청을 외부 네트워크 어댑터에 바인딩된 실제 네트워크 어댑터로 전달하기 위해 OID_SWITCH_NIC_REQUEST 실행할 수도 있습니다. 이렇게 하면 확장이 자체 OID 요청을 시작하거나 기존 OID 요청을 외부 네트워크 어댑터에 바인딩된 실제 네트워크 어댑터로 리디렉션할 수 있습니다. 이렇게 하려면 확장이 다음 단계를 수행해야 합니다.

  1. 확장은 ReferenceSwitchNic 를 호출하여 대상 물리적 네트워크 어댑터의 인덱스에 대한 참조 카운터를 증가합니다. 이렇게 하면 참조 카운터가 0이 아닌 동안 확장 가능한 스위치 인터페이스가 실제 네트워크 어댑터 연결을 삭제하지 않습니다.

    참고 확장 가능한 스위치 인터페이스는 참조 카운터가 0이 아닌 동안 실제 네트워크 어댑터 연결의 연결을 끊을 수 있습니다. 자세한 내용은 Hyper-V 확장 가능한 스위치 포트 및 네트워크 어댑터 상태를 참조하세요.

  2. 확장은 다음과 같은 방법으로 NDIS_SWITCH_NIC_OID_REQUEST 구조를 초기화하여 OID 요청을 캡슐화합니다.

    • DestinationPortId 멤버는 외부 네트워크 어댑터가 연결된 확장 가능한 스위치 포트의 식별자로 설정해야 합니다.

    • DestinationNicIndex 멤버는 기본 물리적 네트워크 어댑터의 0이 아닌 인덱스 값으로 설정해야 합니다.

    • 확장이 Hyper-V 자식 파티션을 대신하여 시작되는 경우 SourcePortIdSourceNicIndex 멤버는 파티션에서 사용되는 포트 및 네트워크 어댑터에 해당하는 값으로 설정됩니다. 그렇지 않으면 SourcePortIdSourceNicIndex 멤버가 0으로 설정됩니다.

      예를 들어 확장이 자식 파티션에 대한 하드웨어 오프로드 리소스를 관리하는 경우 캡슐화된 하드웨어 오프로드 OID 요청의 파티션을 지정하려면 SourcePortIdSourceNicIndex 멤버를 설정해야 합니다.

    • OidRequest 멤버는 캡슐화된 OID 요청에 대해 초기화된 NDIS_OID_REQUEST 구조체에 대한 포인터로 설정해야 합니다.

  3. 확장은 NdisFOidRequest 를 호출하여 OID 요청을 지정된 대상 확장 가능한 스위치 포트 및 네트워크 어댑터로 전달합니다.

  4. NDIS가 FilterOidRequestComplete 함수를 호출할 때 확장은 DereferenceSwitchNic 를 호출하여 대상 물리적 네트워크 어댑터의 인덱스에 대한 참조 카운터를 지웁니다.

반환 상태 코드

확장 가능한 스위치의 기본 미니포트 에지는 OID_SWITCH_NIC_REQUEST OID 쿼리 요청을 완료하고 다음 상태 코드 중 하나를 반환합니다.

상태 코드 Description

NDIS_STATUS_SUCCESS

OID 요청이 성공적으로 완료되었습니다.

NDIS_STATUS_Xxx

다른 이유로 인해 요청이 실패했습니다.

요구 사항

Version

NDIS 6.30 이상에서 지원됩니다.

헤더

Ntddndis.h(Ndis.h 포함)

추가 정보


NDIS_STATUS_INDICATION

NDIS_SWITCH_NIC_OID_REQUEST