모듈 상태 및 작업 필터링
필터 드라이버는 드라이버가 관리하는 각 필터 모듈(필터 드라이버의 instance)에 대해 다음 작동 상태를 지원해야 합니다.
분리
분리된 상태는 필터 모듈의 초기 상태입니다. 필터 모듈이 이 상태인 경우 NDIS는 필터 드라이버의 FilterAttach 함수를 호출하여 필터 모듈을 드라이버 스택에 연결할 수 있습니다.
연결 비교
연결 상태에서 필터 드라이버는 필터 모듈을 드라이버 스택에 연결할 준비를 합니다.
일시 중지
일시 중지됨 상태에서 필터 드라이버는 보내기 또는 수신 작업을 수행하지 않습니다.
다시 시작
다시 시작 상태에서 필터 드라이버는 필터 모듈에 대한 보내기 및 수신 작업을 다시 시작하는 데 필요한 모든 작업을 완료합니다.
실행 중
실행 중 상태에서 필터 드라이버는 필터 모듈에 대한 일반 송신 및 수신 처리를 수행합니다.
일시 중지
일시 중지 상태에서 필터 드라이버는 필터 모듈에 대한 보내기 및 수신 작업을 중지하는 데 필요한 모든 작업을 완료합니다.
다음 표에서 제목은 필터 모듈 상태입니다. 주 이벤트는 첫 번째 열에 나열됩니다. 테이블의 나머지 항목은 이벤트가 상태 내에서 발생한 후 필터 모듈이 입력하는 다음 상태를 지정합니다. 빈 항목은 잘못된 이벤트/상태 조합을 나타냅니다.
이벤트/상태 | 분리 | 연결 비교 | 일시 중지됨 | 다시 시작 | 실행 중 | 일시 중지 |
---|---|---|---|---|---|---|
필터 연결 |
연결 비교 |
|||||
연결이 완료되었습니다. |
일시 중지됨 |
|||||
필터 분리 |
분리 |
|||||
필터 다시 시작 |
다시 시작 |
|||||
다시 시작이 완료되었습니다. |
실행 중 |
|||||
필터 일시 중지 |
일시 중지 |
|||||
일시 중지가 완료되었습니다. |
일시 중지됨 |
|||||
연결 실패 |
분리 |
|||||
다시 시작 실패 |
일시 중지됨 |
|||||
송신 및 수신 |
실행 중 |
일시 중지 |
||||
OID 요청 |
일시 중지됨 |
다시 시작 |
실행 중 |
일시 중지 |
기본 필터 드라이버 이벤트는 다음과 같이 정의됩니다.
필터 연결
NDIS는 드라이버의 FilterAttach 함수를 호출하여 필터 모듈을 드라이버 스택에 연결했습니다. 필터 모듈을 연결하는 방법에 대한 자세한 내용은 필터 모듈 연결을 참조하세요.
연결이 완료되었습니다.
필터 모듈이 연결 상태이고 필터 드라이버가 필터 모듈에 필요한 모든 리소스의 초기화를 완료하면 필터 모듈이 일시 중지됨 상태로 들어갑니다.
필터 분리
NDIS는 드라이버의 FilterDetach 함수를 호출하여 드라이버 스택에서 필터 모듈을 분리합니다. 자세한 내용은 필터 모듈 분리를 참조하세요.
필터 다시 시작
NDIS는 드라이버의 FilterRestart 함수를 호출하여 일시 중지된 필터 모듈을 다시 시작합니다. 자세한 내용은 필터 모듈 시작을 참조하세요.
다시 시작이 완료되었습니다.
필터 모듈이 다시 시작 중 상태이고 드라이버가 보내기 및 받기 작업을 수행할 준비가 되면 필터 모듈이 실행 중 상태로 들어갑니다.
필터 일시 중지
NDIS는 드라이버의 FilterPause 함수를 호출하여 필터 모듈을 일시 중지했습니다. 자세한 내용은 필터 모듈 일시 중지를 참조하세요.
일시 중지가 완료되었습니다.
드라이버가 보내기 및 수신 작업을 중지하는 데 필요한 모든 작업을 완료한 후 일시 중지 작업이 완료되고 필터 모듈이 일시 중지됨 상태가 됩니다.
연결 실패
NDIS가 드라이버의 FilterAttach 함수를 호출하고 연결 작업이 실패하는 경우(예: 필요한 리소스를 사용할 수 없기 때문에) 필터 모듈은 분리됨 상태로 돌아갑니다.
다시 시작 실패
NDIS가 드라이버의 FilterRestart 함수를 호출하고 다시 시작 시도가 실패하면 필터 모듈이 일시 중지됨 상태로 돌아갑니다.
보내기 및 받기 작업
드라이버는 실행 중 및 일시 중지 상태에서 송신 및 수신 작업을 처리할 수 있습니다. 보내기 및 받기 작업에 대한 자세한 내용은 모듈 보내기 및 받기 작업 필터링을 참조하세요.
OID 요청
드라이버는 실행 중, 다시 시작, 일시 중지 및 일시 중지 상태에서 OID 요청을 처리할 수 있습니다. OID 요청에 대한 자세한 내용은 모듈 OID 요청 필터링을 참조하세요.