다음을 통해 공유


모듈 상태 및 작업 필터링

필터 드라이버는 드라이버가 관리하는 각 필터 모듈(필터 드라이버의 인스턴스)에 대해 다음 작동 상태를 지원해야 합니다.

분리된
분리된 상태는 필터 모듈의 초기 상태입니다. 필터 모듈이 이 상태에 있는 경우 NDIS는 필터 드라이버의 FilterAttach 함수를 호출하여 필터 모듈을 드라이버 스택에 연결할 수 있습니다.

부착
연결 상태에서 필터 드라이버는 필터 모듈을 드라이버 스택에 연결하도록 준비합니다.

일시 중지됨
일시 중지된 상태에서 필터 드라이버는 보내기 또는 받기 작업을 수행하지 않습니다.

다시 시작
다시 시작 상태에서 필터 드라이버는 필터 모듈에 대한 보내기 및 받기 작업을 다시 시작하는 데 필요한 모든 작업을 완료합니다.

실행 중
실행 상태에서 필터 드라이버는 필터 모듈에 대한 일반 송신 및 수신 처리를 수행합니다.

일시 중지
일시 중지 상태에서 필터 드라이버는 필터 모듈에 대한 보내기 및 받기 작업을 중지하는 데 필요한 모든 작업을 완료합니다.

다음 표에서 제목은 필터 모듈 상태입니다. 주 이벤트는 첫 번째 열에 나열됩니다. 테이블의 나머지 항목은 이벤트가 상태 내에서 발생한 후 필터 모듈이 입력하는 다음 상태를 지정합니다. 빈 항목은 잘못된 이벤트/상태 조합을 나타냅니다.

이벤트/상태 분리 첨부 일시 중지 다시 시작 중 달리기 일시 중지

필터 연결

첨부

연결이 완료되었습니다.

일시 중지

필터 분리

분리된

필터 다시 시작

다시 시작

다시 시작이 완료되었습니다.

달리기

필터 일시 중지

일시 중지

일시 중지가 완료되었습니다.

일시 중지

연결 실패

고립된 / 떨어진

다시 시작 실패

일시 중지

보내기 및 받기

달리기

일시 중지

OID 요청

일시 중지

다시 시작 중

달리기

일시 중지

기본 필터 드라이버 이벤트는 다음과 같이 정의됩니다.

필터 연결
NDIS는 드라이버의 FilterAttach 함수를 호출하여 필터 모듈을 드라이버 스택에 연결합니다. 필터 모듈 연결에 대한 자세한 내용은 필터 모듈 연결을 참조하세요.

첨부가 완료되었습니다.
필터 모듈이 연결 상태이고 필터 드라이버가 필터 모듈에 필요한 모든 리소스의 초기화를 완료하면 필터 모듈이 일시 중지된 상태가 됩니다.

필터 분리
NDIS는 드라이버 스택에서 필터 모듈을 분리하기 위해 드라이버의 FilterDetach 함수를 호출했습니다. 자세한 내용은 필터 모듈 분리을 참조하세요.

필터 다시 시작
NDIS는 드라이버의 FilterRestart 함수를 호출하여 일시 중지된 필터 모듈을 다시 시작합니다. 더 많은 정보를 원하시면 필터 모듈 시작하기을 참조하세요.

다시 시작이 완료되었습니다.
필터 모듈이 다시 시작 상태이고 드라이버가 보내기 및 받기 작업을 수행할 준비가 되면 필터 모듈은 실행 상태가 됩니다.

필터 일시 중지
NDIS는 드라이버의 FilterPause 함수를 호출하여 필터 모듈을 일시 중지합니다. 자세한 내용은 필터 모듈일시 중지를 참조하세요.

일시 중지 완료
드라이버가 보내기 및 받기 작업을 중지하는 데 필요한 모든 작업을 완료하면 일시 중지 작업이 완료되고 필터 모듈이 일시 중지된 상태가 됩니다.

연결 실패
NDIS가 드라이버의 FilterAttach 함수를 호출하고 연결 작업이 실패하는 경우(예: 필요한 리소스를 사용할 수 없기 때문에) 필터 모듈은 분리된 상태로 돌아갑니다.

다시 시작 실패
NDIS가 드라이버의 FilterRestart 함수를 호출하고 다시 시작 시도가 실패하면 필터 모듈은 일시 중지된 상태로 돌아갑니다.

보내기 및 받기 작업
드라이버는 실행일시 중지 상태에서 송신 및 수신 작업을 처리할 수 있습니다. 보내기 및 받기 작업에 대한 자세한 내용은 필터 모듈 보내기 및 받기 작업참조하세요.

OID 요청
드라이버는 실행, 다시 시작, 일시 중지, 그리고 일시 중지 중 상태에서 OID 요청을 처리할 수 있습니다. OID 요청에 대한 자세한 내용은 Filter Module OID Requests참조하세요.