NDIS_PD_SET_RECEIVE_FILTER 콜백 함수(ndis.h)

PD(PacketDirect) 플랫폼은 PD 지원 미니포트 드라이버의 NdisPDSetReceiveFilter 함수를 호출하여 특정 패킷 흐름을 특정 PD 수신 큐로 전달합니다.

참고NDIS_PD_SET_RECEIVE_FILTER 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.

 

구문

NDIS_PD_SET_RECEIVE_FILTER NdisPdSetReceiveFilter;

NTSTATUS() NdisPdSetReceiveFilter(
  [in]  NDIS_PD_PROVIDER_HANDLE ProviderHandle,
  [in]  const NDIS_PD_FILTER_PARAMETERS *FilterParameters,
  [out] NDIS_PD_FILTER_HANDLE *FilterHandle
)
{...}

매개 변수

[in] ProviderHandle

PD 지원 미니포트 드라이버의 공급자 개체를 식별하는 공급자 핸들입니다.

[in] FilterParameters

필터에 필요한 정보를 식별하는 매개 변수입니다. 자세한 내용은 NDIS_PD_FILTER_PARAMETERS 구조를 참조하세요.

[out] FilterHandle

필터에 대한 핸들입니다.

반환 값

이 함수는 성공적으로 완료되면 STATUS_SUCCESS 반환하고, 그렇지 않으면 적절한 오류 코드를 반환합니다.

설명

퍼짐이 발생하기 전에 PD 필터가 적용되므로 PD 필터와 일치하는 패킷을 전용 PD 큐에 배치할 수 있으며 나머지 패킷은 평소와 같이 RSS에 의해 분산될 수 있습니다. PD 클라이언트는 겹치지 않는 모호한 필터를 배관합니다. 그러나 일부 PD는 PD 클라이언트가 먼저 적용해야 하는 필터를 나타내는 우선 순위 값을 전달할 수 있는 한 겹치는 모호한 필터를 허용할 수 있습니다. 클라이언트가 충돌하는 프로필 또는 겹치는 일치 조건을 사용하여 필터를 설정하려고 하면 PD 공급자가 STATUS_NOT_SUPPORTED 필터 집합 요청에 실패할 수 있습니다. NDIS_PD_CAPABILITIES 구조에서는 공급자가 PD 클라이언트가 동시에 사용할 수 있는 모든 유효한 프로필 조합을 보급할 수 없으므로 PD 공급자가 필터 집합 요청에 실패할 때 런타임에 PD 클라이언트가 일부 기능을 검색합니다STATUS_NOT_SUPPORTED

NdisPDSetReceiveFilter 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾을 수 있으며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MyPDSetReceiveFilter"라는 NdisPDSetReceiveFilter 함수를 정의하려면 다음 코드 예제와 같이 NDIS_PD_SET_RECEIVE_FILTER 형식을 사용합니다.

NDIS_PD_SET_RECEIVE_FILTER MyPDSetReceiveFilter;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MyPDSetReceiveFilter(
    NDIS_PD_PROVIDER_HANDLE  ProviderHandle,
    CONST NDIS_PD_FILTER_PARAMETERS*  FilterParameters,
    NDIS_PD_FILTER_HANDLE*  FilterHandle
    )
  {...}

NDIS_PD_SET_RECEIVE_FILTER 함수 형식은 Ntddndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 NDIS_PD_SET_RECEIVE_FILTER 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작 주석 지정을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 Windows
헤더 ndis.h
IRQL PASSIVE_LEVEL