NIC 스위치의 매개 변수 설정
오버리싱 드라이버는 단일 루트 I/O 가상화(SR-IOV)를 지원하는 네트워크 어댑터에서 만든 NIC 스위치에 대한 매개 변수를 변경할 수 있습니다. 드라이버는 이러한 매개 변수를 변경하기 위해 OID_NIC_SWITCH_PARAMETERS OID(개체 식별자) 집합 요청을 실행합니다. SR-IOV 어댑터의 PCI Express(PCIe) PF(물리적 함수)에 대한 미니포트 드라이버만 이 OID 집합 요청을 처리합니다.
상위 드라이버가 이 OID 집합 요청을 발행하기 전에, NIC 스위치에서 변경할 매개변수로 NDIS_NIC_SWITCH_PARAMETERS 구조체를 초기화해야 합니다. 그런 다음 드라이버는 OID 요청에 대한 NDIS_OID_REQUEST 구조를 초기화하고 InformationBuffer 멤버를 NDIS_NIC_SWITCH_PARAMETERS 구조체의 포인터로 설정합니다.
NIC 스위치에 대한 구성 매개 변수의 제한된 하위 집합만 변경할 수 있습니다. 오버리싱 드라이버는 NDIS_NIC_SWITCH_PARAMETERS 구조체의 다음 멤버를 설정하여 변경할 매개 변수를 지정합니다.
SwitchId 멤버는 매개 변수가 변경될 NIC 스위치의 식별자로 설정됩니다.
참고 Windows Server 2012부터 SR-IOV 인터페이스는 네트워크 어댑터에서 하나의 NIC 스위치만 지원합니다. 이 스위치는 기본 NIC 스위치로 알려져 있습니다. SwitchId 멤버는 반드시 NDIS_DEFAULT_SWITCH_ID로 설정해야 합니다.
적절한 NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 플래그는 Flags 멤버에 설정됩니다. NDIS_NIC_SWITCH_PARAMETERS 구조체의 멤버는 해당 NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 플래그가 Ntddndis.h에 정의된 경우에만 변경할 수 있습니다.
Flags 멤버에 설정된 NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED 플래그에 해당하는 NDIS_NIC_SWITCH_PARAMETERS 구조체의 멤버는 변경이 필요한 NIC 스위치 구성 매개 변수로 설정됩니다.
참고 Windows Server 2012부터 NDIS_NIC_SWITCH_PARAMETERS 구조의 SwitchName 멤버만 OID_NIC_SWITCH_PARAMETERSOID 집합 요청을 통해 변경할 수 있습니다.
PF 미니포트 드라이버는 OID_NIC_SWITCH_PARAMETERS OID 집합 요청을 받을 때 다음 지침을 따라야 합니다.
PF 미니포트 드라이버가 네트워크 어댑터를 다시 초기화하지 않고도 변경 내용을 적용할 수 있는 경우 드라이버는 변경 내용을 하드웨어에 적용하고 NDIS_STATUS_SUCCESS 사용하여 OID 요청을 완료합니다.
이 상태 코드가 반환되면 NDIS는 레지스트리에서 NIC 스위치 구성 정보를 업데이트합니다.
PF 미니포트 드라이버에서 변경 내용을 적용하기 위해 네트워크 어댑터를 다시 초기화해야 하는 경우 드라이버는 NDIS_STATUS_REINIT_REQUIRED 사용하여 OID 요청을 완료합니다.
이 상태 코드가 반환되면 NDIS는 레지스트리의 NIC 스위치 구성 정보도 업데이트합니다. 그러나 OID 집합 요청을 발행한 상위 드라이버는 변경 사항이 적용될 수 있도록 네트워크 어댑터를 다시 초기화해야 합니다.
정적 NIC 만들기 및 구성을 지원하는 PF 미니포트 드라이버는 NDIS_STATUS_REINIT_REQUIRED를 반환하여 어댑터가 다시 초기화되도록 하여 새 매개 변수가 적용되도록 할 수 있습니다.
PF 미니포트 드라이버가 OID에서 요청된 변경 내용을 적용할 수 없는 경우 OID에 실패하고 적절한 NDIS_STATUS_Xxx 코드를 반환해야 합니다.
이 경우 NDIS는 레지스트리의 NIC 스위치 구성 정보를 업데이트하지 않습니다.