스위치 정책 관리
Hyper-V 확장 가능한 스위치 필터링 및 전달 확장은 사용자 지정 스위치 속성의 속성을 사용하여 프로비전할 수 있습니다. 프로비전되면 이러한 확장은 확장 가능한 스위치 수신 데이터 경로에서 가져온 패킷을 필터링할 때 정책을 적용합니다. 이러한 정책에 대한 자세한 내용은 정책 전환을 참조하세요.
Hyper-V 확장 가능한 스위치 인터페이스는 다음 OID(개체 식별자)를 사용하여 사용자 지정 스위치 정책의 속성을 사용하여 필터링 및 전달 확장을 프로비전합니다.
OID_SWITCH_PROPERTY_ADD
이 OID 집합 요청은 WMI 관리 계층에 속성이 추가되었음을 기본 확장에 알리기 위해 확장 가능한 스위치의 프로토콜 에지에 의해 발급됩니다. NDIS_OID_REQUEST 구조체의 InformationBuffer에는 NDIS_SWITCH_PROPERTY_PARAMETERS 구조체에 대한 포인터가 포함되어 있습니다.
참고 사용자 지정 스위치 속성은 NdisSwitchPropertyTypeCustom의 NDIS_SWITCH_PROPERTY_TYPE 열거형 값으로 지정됩니다.
OID_SWITCH_PROPERTY_UPDATE
이 OID 집합 요청은 WMI 관리 계층의 속성 업데이트에 대한 기본 확장을 알리기 위해 확장 가능한 스위치의 프로토콜 에지에 의해 발급됩니다. NDIS_OID_REQUEST 구조체의 InformationBuffer에는 NDIS_SWITCH_PROPERTY_PARAMETERS 구조체에 대한 포인터가 포함되어 있습니다.
OID_SWITCH_PROPERTY_DELETE
이 OID 집합 요청은 WMI 관리 계층의 속성 삭제에 대한 기본 확장을 알리기 위해 확장 가능한 스위치의 프로토콜 에지에 의해 발급됩니다. NDIS_OID_REQUEST 구조체의 InformationBuffer에는 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 구조체에 대한 포인터가 포함되어 있습니다.
OID_SWITCH_PROPERTY_ENUM
이 OID 메서드 요청은 확장 가능한 스위치에서 현재 구성된 스위치 속성에 대해 확장 가능한 스위치의 기본 미니포트 에지를 쿼리하기 위해 확장에서 전송됩니다. NDIS_OID_REQUEST 구조체의 InformationBuffer에는 버퍼에 대한 포인터가 포함되어 있습니다. 이 버퍼에는 다음 데이터가 포함됩니다.
스위치 정책의 속성 열거형에 대한 매개 변수를 지정하는 NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS 구조체입니다.
NDIS_SWITCH_PROPERTY_ENUM_INFO 구조체의 배열입니다. 이러한 각 구조에는 스위치 정책의 속성에 대한 정보가 포함됩니다.
참고NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS 구조체의 NumProperties 멤버가 0으로 설정된 경우 NDIS_SWITCH_PROPERTY_ENUM_INFO 구조체가 반환되지 않습니다.
참고 확장은 OID_SWITCH_PROPERTY_ADD OID 집합 요청을 시작해서는 안 됩니다. OID_SWITCH_PROPERTY_UPDATE 또는 OID_SWITCH_PROPERTY_DELETE.
확장 가능한 스위치 확장은 OID_SWITCH_PROPERTY_ADD, OID_SWITCH_PROPERTY_UPDATE 또는OID_SWITCH_PROPERTY_DELETE OID 집합 요청을 처리할 때 다음 지침을 따라야 합니다.
확장은 OID 요청과 연결된 NDIS_SWITCH_PROPERTY_PARAMETERS 또는 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 구조를 수정해서는 안됩니다.
확장이 이전에 NDIS_SWITCH_PROPERTY_PARAMETERS 또는 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 구조의 다음 멤버와 일치하는 switch 속성으로 프로비전된 경우 확장은 OID_SWITCH_PROPERTY_UPDATE 또는 OID_SWITCH_PROPERTY_DELETE 집합 요청을 처리해야 합니다.
switch 속성의 형식을 지정하는 PropertyType 멤버입니다.
참고 NDIS 6.30부터 NdisSwitchPropertyTypeCustom 의 switch 속성만 NDIS_SWITCH_PROPERTY_PARAMETERS 또는 NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS 구조체에 의해 지정됩니다.
확장에서 인식하는 독점 GUID 값을 지정하는 PropertyId 멤버입니다. 이 GUID 값은 사용자 지정 확장 가능한 스위치 정책 속성의 형식도 정의하는 ISV(독립 소프트웨어 공급업체)에서 만듭니다.
참고 사용자 지정 확장 가능한 스위치 정책 속성은 NDIS_SWITCH_PROPERTY_CUSTOM 구조 내에 포함됩니다.
확장이 이러한 OID 집합 요청을 처리하는 경우 확장은 NDIS_SWITCH_PROPERTY_PARAMETERS 구조의 다음 멤버와 일치하는 스위치 정책을 업데이트하거나 삭제해야 합니다.
확장 가능한 스위치 정책의 버전을 지정하는 PropertyVersion 멤버입니다.
확장 가능한 스위치 정책의 instance 지정하는 PropertyInstanceId 멤버입니다.
이러한 멤버의 값이 확장이 이전에 프로비전된 스위치 정책 속성과 일치하지 않는 경우 확장은 NDIS_STATUS_INVALID_PARAMETER OID 집합 요청에 실패해야 합니다. 그렇지 않으면 확장이 OID 집합 요청을 완료하고 NDIS_STATUS_SUCCESS 반환해야 합니다.
필터링 또는 전달 확장은 스위치 정책의 추가, 삭제 또는 업데이트를 거부할 수 있습니다. 확장은 STATUS_DATA_NOT_ACCEPTED 사용하여 OID 요청을 완료하여 이 작업을 수행합니다.
참고 확장 캡처는 스위치 정책의 추가 또는 업데이트를 거부해서는 안 됩니다. 대신 확장 가능한 스위치 제어 경로 아래로 OID 요청을 전달해야 합니다.
캡처 또는 필터링 확장이 사용자 지정 스위치 정책에 대한 OID 집합 요청을 성공적으로 처리하는 경우 OID 요청을 완료하지 않아야 하며 확장 가능한 스위치 제어 경로 아래로 전달해야 합니다.
전달 확장이 사용자 지정 스위치 정책에 대한 OID 집합 요청을 성공적으로 처리하는 경우 OID 요청을 완료하고 적절한 NDIS_STATUS_Xxx 값을 반환해야 합니다.
확장이 OID 집합 요청을 완료하지 않으면 NdisFOidRequest 를 호출하여 확장 가능한 스위치 드라이버 스택 아래로 OID 요청을 전달해야 합니다. 이 경우 확장은 OID의 완료 상태 모니터링하여 기본 확장이 OID 요청에 실패했는지 여부를 검색해야 합니다.