OID_RECEIVE_FILTER_CLEAR_FILTER

오버리싱 드라이버는 네트워크 어댑터에서 수신 필터를 지우기 위해 OID_RECEIVE_FILTER_CLEAR_FILTER OID 집합 요청을 실행합니다.

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

설명

NDIS 수신 필터는 다음 NDIS 인터페이스에서 사용됩니다.

OID_RECEIVE_FILTER_CLEAR_FILTER OID 집합 요청은 NDIS 패킷 병합, SR-IOV 또는 VMQ 인터페이스를 지원하는 미니포트 드라이버에 필수입니다.

NDIS 프로토콜 또는 필터 드라이버와 같은 오버리싱 드라이버는 OID_RECEIVE_FILTER_CLEAR_FILTER 집합 요청을 사용하여 이전에 설정한 필터를 지웁니다. 수신 필터를 설정한 드라이버만 지울 수 있습니다.

오버리싱 드라이버는 NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS 구조체의 FilterId 멤버를 필터의 식별자로 설정하여 수신 필터를 지웁니다. 드라이버는 OID_RECEIVE_FILTER_SET_FILTER 이전 OID 메서드 요청에서 필터 식별자를 얻었습니다.

NDIS 패킷 병합에 대한 추가 지침

다음 점은 NDIS 패킷 병합을 지원하는 미니포트 및 오버리딩 드라이버에 적용됩니다.

  • 오버리싱 드라이버는 드라이버에서 바인딩을 해제하거나 분리하기 전에 미니포트 드라이버에 설정된 모든 수신 필터를 지워야 합니다.

SR-IOV 인터페이스에 대한 추가 지침

다음 점은 SR-IOV 인터페이스를 지원하는 미니포트 및 오버리딩 드라이버에 적용됩니다.

  • 오버리싱 드라이버는 VPort를 해제하기 전에 SR-IOV VPort에 설정된 모든 필터를 지워야 합니다. 또한 오버리싱 드라이버는 네트워크 어댑터에 대한 바인딩을 닫기 전에 기본 VPort에서 설정한 모든 필터를 지워야 합니다.

  • 미니포트 드라이버는 VPort의 마지막 필터를 지우기 위해 OID_RECEIVE_FILTER_CLEAR_FILTER OID 요청을 완료한 경우 기본이 아닌 VPort의 패킷을 나타내면 안 됩니다.

    참고 또한 미니포트 드라이버는 VPort를 해제하기 위한 OID_NIC_SWITCH_DELETE_VPORT OID 요청을 완료한 경우 기본이 아닌 VPort의 패킷을 표시해서는 안 됩니다.

VMQ 인터페이스에 대한 추가 지침

다음 점은 VMQ 인터페이스를 지원하는 미니포트 및 오버리딩 드라이버에 적용됩니다.

  • 오버리싱 드라이버는 큐를 해제하기 전에 VMQ 수신 큐에 설정된 모든 필터를 지워야 합니다. 또한 오버리싱 드라이버는 네트워크 어댑터에 대한 바인딩을 닫기 전에 기본 큐에 설정된 모든 필터를 지우거나 큐를 삭제해야 합니다.

  • 미니포트 드라이버는 수신 큐의 마지막 필터를 지우기 위해 OID_RECEIVE_FILTER_CLEAR_FILTER OID 요청을 완료한 경우 수신 큐의 패킷을 나타내면 안 됩니다.

    참고 또한 미니포트 드라이버는 수신 큐를 해제하기 위한 OID_RECEIVE_FILTER_FREE_QUEUE OID 요청을 완료한 경우 수신 큐의 패킷을 나타내서는 안 됩니다.

상태 코드 반환

미니포트 드라이버의 MiniportOidRequest 함수는 이 요청에 대해 다음 값 중 하나를 반환합니다.

용어 Description

NDIS_STATUS_SUCCESS

미니포트 드라이버가 요청을 성공적으로 완료했습니다.

NDIS_STATUS_PENDING

미니포트 드라이버는 요청을 비동기적으로 완료합니다. 미니포트 드라이버가 모든 처리를 완료한 후에는 NdisMOidRequestComplete 함수를 호출하고 Status 매개 변수에 대한 NDIS_STATUS_SUCCESS 전달하여 요청을 성공시켜야 합니다.

NDIS_STATUS_NOT_ACCEPTED

미니포트 어댑터가 깜짝 제거되었습니다.

NDIS는 이 요청에 대해 다음 상태 코드 중 하나를 반환합니다.

NDIS_STATUS_SUCCESS
지정한 필터가 성공적으로 지워졌습니다.

NDIS_STATUS_PENDING
요청이 완료될 때까지 보류 중입니다. NDIS는 요청이 완료된 후 최종 상태 코드와 결과를 호출자의 OID 요청 완료 처리기에 전달합니다.

NDIS_STATUS_FILE_NOT_FOUND
필터 식별자가 잘못되었습니다.

NDIS_STATUS_INVALID_LENGTH
정보 버퍼가 너무 작습니다. NDIS는 데이터를 설정합니다 . SET_INFORMATION. 필요한 최소 버퍼 크기에 대한 NDIS_OID_REQUEST 구조체의 BytesNeeded 멤버입니다.

요구 사항

Version

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

헤더

Ntddndis.h(Ndis.h 포함)

추가 정보

NDIS_OID_REQUEST

NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS

OID_NIC_SWITCH_DELETE_VPORT

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_SET_FILTER