다음을 통해 공유


가상 포트에서 수신 필터 열거

네트워크 어댑터의 NIC 스위치에서 VPort(가상 포트)를 만든 후 드라이버와 사용자 애플리케이션이 오버리딩하면 다음을 수행할 수 있습니다.

VPort를 만드는 방법에 대한 자세한 내용은 가상 포트 만들기를 참조하세요.

수신 필터 열거

NIC 스위치의 VPort(가상 포트)에 설정된 모든 수신 필터 목록을 가져오려면 드라이버와 애플리케이션이 OID_RECEIVE_FILTER_ENUM_FILTERS OID(개체 식별자) 메서드 요청을 실행할 수 있습니다.

NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 처음에 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조체에 대한 포인터를 포함합니다.

지나치게 많은 드라이버 또는 사용자 애플리케이션이 이 OID 메서드 요청을 실행하기 전에 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조를 초기화하고 다음과 같은 방식으로 이 구조체의 멤버를 설정해야 합니다.

  • QueueId 멤버는 NDIS_DEFAULT_RECEIVE_QUEUE_ID 설정해야 합니다.

  • VPortId 멤버는 VPort와 연결된 식별자로 설정해야 합니다. 오버리싱 드라이버는 다음 방법 중 하나를 통해 VPort 식별자를 가져옵니다.

    참고 이 멤버는 드라이버 또는 애플리케이션이 Flags 멤버에서 NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED 플래그를 설정하는 경우에만 유효합니다. 이 플래그가 설정되지 않은 경우 NIC 스위치의 모든 VPort에서 설정된 수신 필터가 반환됩니다.

OID_RECEIVE_FILTER_ENUM_FILTERS OID 메서드 요청에서 성공적으로 반환된 후 NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 업데이트된 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조체에 대한 포인터가 포함되고 그 뒤에 하나 이상의 NDIS_RECEIVE_FILTER_INFO 구조체가 포함됩니다. 각 NDIS_RECEIVE_FILTER_INFO 구조체는 지정된 VPort에 설정된 수신 필터의 고유 식별자를 지정합니다.

특정 수신 필터 쿼리

지나치게 드라이버 또는 애플리케이션은 VPort 에서 특정 필터의 매개 변수를 얻기 위해 OID_RECEIVE_FILTER_PARAMETERS OID 메서드 요청을 실행할 수 있습니다.

NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 처음에 NDIS_RECEIVE_FILTER_PARAMETERS 구조체에 대한 포인터를 포함합니다.

지나치게 많은 드라이버 또는 사용자 애플리케이션이 이 OID 메서드 요청을 실행하기 전에 NDIS_RECEIVE_FILTER_PARAMETERS 구조를 초기화하고 다음과 같은 방식으로 이 구조체의 멤버를 설정해야 합니다.

  • FilterId 멤버는 매개 변수를 반환할 필터의 0이 아닌 식별자 값으로 설정해야 합니다.

    참고 오버리싱 드라이버는 OID_RECEIVE_FILTER_SET_FILTER 또는OID_RECEIVE_FILTER_ENUM_FILTERS 이전 OID 메서드 요청에서 필터 식별자를 얻었습니다. 애플리케이션은 OID_RECEIVE_FILTER_ENUM_FILTERS 이전 OID 메서드 요청에서만 필터 식별자를 가져올 수 있습니다.

  • QueueId 멤버는 NDIS_DEFAULT_RECEIVE_QUEUE_ID 설정해야 합니다.

  • VPortId 멤버는 VPort와 연결된 식별자로 설정해야 합니다. 오버리싱 드라이버는 다음 방법 중 하나를 통해 VPort 식별자를 가져옵니다.

NDIS는 미니포트 드라이버에 대한 OID_RECEIVE_FILTER_ENUM_FILTERSOID_RECEIVE_FILTER_PARAMETERS 메서드 OID 요청을 처리합니다. NDIS는 OID_RECEIVE_FILTER_SET_FILTER OID 요청에서 받은 데이터의 내부 캐시에서 정보를 얻었습니다.