다음을 통해 공유


필터 모듈 시작

일시 중지된 필터 모듈을 시작하기 위해 NDIS는 필터 드라이버의 FilterSetModuleOptions 함수(있는 경우)를 호출한 다음 FilterRestart 함수를 호출합니다. FilterRestart 함수에서 실행이 시작될 때 필터 모듈이 다시 시작 상태로 들어갑니다.

드라이버가 FilterSetModuleOptions에 대한 진입점을 제공한 경우 드라이버는 필터 모듈의 부분 특성을 변경할 수 있습니다. 자세한 내용은 데이터 바이패스 모드를 참조하세요.

필터 드라이버의 FilterRestart 함수를 호출하면 NDIS는 NDIS_RESTART_ATTRIBUTES 구조체에 대한 포인터를 전달하여 NDIS_FILTER_RESTART_PARAMETERS구조체RestartAttributes 멤버에서 드라이버를 필터링합니다. 필터 드라이버는 기본 드라이버에 의해 지정된 다시 시작 특성을 수정할 수 있습니다. 다시 시작 특성을 수정하는 방법에 대한 자세한 내용은 FilterRestart를 참조하세요.

참고 NDIS는 스택의 모든 필터 모듈에 대해 FilterRestart 함수를 호출하기 전에 스택의 모든 필터 모듈에 대해 FilterSetModuleOptions를 호출합니다.

NDIS는 드라이버 스택을 다시 시작하는 플러그 앤 플레이 작업의 일부로 필터 모듈을 시작합니다. 드라이버 스택 다시 시작에 대한 개요는 드라이버 스택 다시 시작을 참조하세요.

다시 시작 상태에 있는 필터 모듈을 대신하여 필터 드라이버는 다음과 같습니다.

  • 일반 송신 및 수신 작업을 다시 시작하는 데 필요한 모든 작업을 완료합니다.

    보내기 및 받기 작업에 대한 자세한 내용은 모듈 보내기 및 받기 작업 필터링을 참조하세요.

  • 필터 모듈에 대한 구성 가능한 매개 변수를 읽거나 쓸 수 있습니다.

  • 네트워크 데이터 표시를 받을 수 있습니다. 드라이버는 이러한 데이터를 복사 및 큐에 추가하고 나중에 오버리딩 드라이버에 표시하거나 데이터를 삭제할 수 있습니다.

  • 새 수신 표시를 시작해서는 안 됩니다.

  • NdisFSendNetBufferListsComplete 함수를 호출하여 FilterSendNetBufferLists 함수에 대한 모든 새 보내기 요청을 즉시 거부해야 합니다. 각 NET_BUFFER_LIST 전체 상태 NDIS_STATUS_PAUSED 설정해야 합니다.

  • NdisFIndicateStatus 함수를 사용하여 상태 표시를 제공할 수 있습니다.

    상태 표시에 대한 자세한 내용은 필터 모듈 상태 표시를 참조하세요.

  • FilterOidRequest 함수에서 OID 요청을 처리해야 합니다.

    OID 요청에 대한 자세한 내용은 모듈 OID 요청 필터링을 참조하세요.

  • 새 보내기 요청을 시작하지 않아야 합니다.

  • NdisFReturnNetBufferLists 함수를 호출하여 NDIS에 새 수신 표시를 즉시 반환해야 합니다. 필요한 경우 드라이버는 이러한 수신 표시를 반환하기 전에 복사할 수 있습니다.

  • 기본 드라이버에 OID를 요청하여 업데이트된 구성 정보를 설정하거나 쿼리할 수 있습니다.

  • FilterStatus 함수에서 상태 표시를 처리해야 합니다.

  • NDIS_STATUS_SUCCESS 또는 오류 상태 나타내야 합니다. 필터 모듈이 다시 시작되지 않으면 NDIS에서 해당 모듈을 분리하고 필수 필터인 경우 NDIS는 전체 드라이버 스택을 종료합니다.

필터 드라이버가 송신 및 수신 작업을 성공적으로 다시 시작한 후 다시 시작 작업을 완료해야 합니다. 필터 드라이버는 FilterRestart에서 각각 NDIS_STATUS_SUCCESS 또는 NDIS_STATUS_PENDING 반환하여 동기적으로 또는 비동기적으로 다시 시작 작업을 완료할 수 있습니다.

드라이버가 NDIS_STATUS_PENDING 반환하는 경우 다시 시작 작업을 완료한 후 NdisFRestartComplete 함수를 호출해야 합니다. 이 경우 드라이버는 다시 시작 작업의 최종 상태 NdisFRestartComplete로 전달합니다.

다시 시작 작업이 완료되면 필터 모듈이 실행 중 상태가 됩니다. 드라이버는 일반 송신 및 수신 처리를 다시 시작합니다.

필터 드라이버가 다시 시작 상태에 있는 동안 NDIS는 연결, 분리 또는 일시 중지 요청과 같은 다른 플러그 앤 플레이 작업을 시작하지 않습니다. NDIS는 필터 드라이버가 실행 중 상태인 후 일시 중지 요청을 시작할 수 있습니다. 필터 모듈 일시 중지에 대한 자세한 내용은 필터 모듈 일시 중지를 참조하세요.