패킷 병합 수신 필터 수정
패킷 병합을 지원하는 미니포트 드라이버에서 수신 필터를 수정하려면 지나치게 많은 프로토콜 또는 필터 드라이버가 다음 단계를 수행합니다.
미니포트 드라이버에 다운로드된 모든 패킷 병합 수신 필터 목록을 가져오기 위해 오버리싱 드라이버는 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)를 지정합니다.
미니포트 드라이버에 다운로드된 특정 패킷 병합 수신 필터의 매개 변수를 가져오기 위해 지나치게 많은 드라이버는 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 멤버는 버퍼에 대한 포인터를 포함합니다. 이 버퍼는 다음을 포함하도록 형식이 지정됩니다.
NDIS 수신 필터에 대한 매개 변수를 지정하는 NDIS_RECEIVE_FILTER_PARAMETERS 구조체입니다.
네트워크 패킷 헤더의 한 필드에 대한 필터 테스트 조건을 지정하는 NDIS_RECEIVE_FILTER_FIELD_PARAMETERS 구조의 배열입니다.
오버리싱 드라이버는 필터의 테스트 조건 집합을 추가, 삭제 또는 변경하도록 수신 필터를 수정합니다. 드라이버는 NDIS_RECEIVE_FILTER_PARAMETERS 구조체에 지정된 필드 매개 변수 배열에서 개별 NDIS_RECEIVE_FILTER_FIELD_PARAMETERS 구조를 추가, 삭제 또는 수정하여 이 작업을 수행합니다.
오버리싱 드라이버가 테스트 조건의 수정을 완료한 경우 수신 필터에 적용된 변경 내용을 반영하도록 NDIS_RECEIVE_FILTER_PARAMETERS 구조체의 멤버를 업데이트해야 합니다. 예를 들어 오버레이싱 드라이버는 배열의 새 요소 수를 포함하도록 FieldParametersArrayNumElements 멤버를 업데이트해야 합니다.
자세한 내용은 패킷 병합 수신 필터 지정을 참조하세요.
오버리싱 드라이버는 수정된 수신 필터를 미니포트 드라이버에 다운로드하기 위해 OID_RECEIVE_FILTER_SET_FILTER OID 메서드 요청을 실행합니다.
자세한 내용은 패킷 병합 수신 필터 설정을 참조하세요.