패킷 병합 수신 필터 수정

패킷 병합을 지원하는 미니포트 드라이버에서 수신 필터를 수정하려면 지나치게 많은 프로토콜 또는 필터 드라이버가 다음 단계를 수행합니다.

  1. 미니포트 드라이버에 다운로드된 모든 패킷 병합 수신 필터 목록을 가져오기 위해 오버리싱 드라이버는 OID_RECEIVE_FILTER_ENUM_FILTERS OID 메서드 요청을 실행합니다. NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조체에 대한 포인터를 포함합니다.

    참고 오버리싱 드라이버 또는 애플리케이션이 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조를 초기화할 때 QueueId 멤버를 NDIS_DEFAULT_RECEIVE_QUEUE_ID 설정해야 합니다.

    OID_RECEIVE_FILTER_ENUM_FILTERS OID 메서드 요청에서 성공적으로 반환된 후 NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버에는 하나 이상의 NDIS_RECEIVE_FILTER_INFO 구조 뒤에 오는 업데이트된 NDIS_RECEIVE_FILTER_INFO_ARRAY 구조체에 대한 포인터가 포함됩니다. 각 NDIS_RECEIVE_FILTER_INFO 구조는 네트워크 어댑터에 설정된 필터의 식별자(ID)를 지정합니다.

  2. 미니포트 드라이버에 다운로드된 특정 패킷 병합 수신 필터의 매개 변수를 가져오기 위해 지나치게 많은 드라이버는 OID_RECEIVE_FILTER_PARAMETERS OID 메서드 요청을 실행합니다. NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 NDIS_RECEIVE_FILTER_PARAMETERS 구조체에 대한 포인터를 포함합니다. 오버리싱 드라이버 또는 애플리케이션은 FilterId 멤버를 매개 변수가 반환될 필터의 0이 아닌 ID 값으로 설정하여 NDIS_RECEIVE_FILTER_PARAMETERS 구조를 초기화합니다.

    OID 메서드 요청에서 성공적으로 반환된 후 NDIS_OID_REQUEST 구조체의 InformationBuffer 멤버는 버퍼에 대한 포인터를 포함합니다. 이 버퍼는 다음을 포함하도록 형식이 지정됩니다.

  3. 오버리싱 드라이버는 필터의 테스트 조건 집합을 추가, 삭제 또는 변경하도록 수신 필터를 수정합니다. 드라이버는 NDIS_RECEIVE_FILTER_PARAMETERS 구조체에 지정된 필드 매개 변수 배열에서 개별 NDIS_RECEIVE_FILTER_FIELD_PARAMETERS 구조를 추가, 삭제 또는 수정하여 이 작업을 수행합니다.

    오버리싱 드라이버가 테스트 조건의 수정을 완료한 경우 수신 필터에 적용된 변경 내용을 반영하도록 NDIS_RECEIVE_FILTER_PARAMETERS 구조체의 멤버를 업데이트해야 합니다. 예를 들어 오버레이싱 드라이버는 배열의 새 요소 수를 포함하도록 FieldParametersArrayNumElements 멤버를 업데이트해야 합니다.

    자세한 내용은 패킷 병합 수신 필터 지정을 참조하세요.

  4. 오버리싱 드라이버는 수정된 수신 필터를 미니포트 드라이버에 다운로드하기 위해 OID_RECEIVE_FILTER_SET_FILTER OID 메서드 요청을 실행합니다.

    자세한 내용은 패킷 병합 수신 필터 설정을 참조하세요.