미니포트 드라이버의 어댑터 상태
관리하는 각 미니포트 어댑터에 대해 NDIS 미니포트 드라이버는 다음 작동 상태 집합을 지원해야 합니다.
중단
Shutdown
초기화 중
일시 중지됨
다시 시작
실행 중
일시 중지
다음 그림에서는 이러한 상태 간의 상호 관계를 보여 줍니다.
참고 초기화 작업은 미니포트 어댑터 작동 상태에 영향을 주지 않습니다. 또한 다시 설정 작업이 진행되는 동안 어댑터의 상태가 변경될 수 있습니다. 예를 들어 NDIS는 초기화 작업이 진행 중인 경우 드라이버의 일시 중지 처리기를 호출할 수 있습니다. 이 경우 드라이버는 각 작업에 대한 일반적인 요구 사항을 따르는 동안 모든 순서로 다시 설정 또는 일시 중지 작업을 완료할 수 있습니다. 재설정 작업의 경우 드라이버는 전송 요청 패킷에 실패하거나 큐에 대기 상태로 유지하고 나중에 완료할 수 있습니다. 그러나 전송 패킷이 보류 중인 동안에는 지나치게 많은 드라이버가 일시 중지 작업을 완료할 수 없다는 점에 유의해야 합니다.
다음은 어댑터 상태를 정의합니다.
중지됨 은 모든 미니포트 어댑터의 초기 상태입니다. 미니포트 어댑터가 중지됨 상태이고 NDIS가 드라이버의 MiniportInitializeEx 함수를 호출하여 미니포트 어댑터를 초기화하면 미니포트 어댑터가 초기화 상태가 됩니다. MiniportInitializeEx가 실패하면 미니포트 어댑터가 중지됨 상태로 돌아갑니다. 미니포트 어댑터가 일시 중지됨 상태이고 NDIS가 MiniportHaltEx 함수를 호출하면 미니포트 어댑터가 중지됨 상태로 돌아갑니다.
시스템이 종료되고 다시 시작될 때까지 종료 상태의 미니포트 어댑터를 사용할 수 없습니다. 미니포트 어댑터가 일시 중지됨, 다시 시작, 실행 중 또는 일시 중지 상태이고 NDIS가 미니포트 드라이버의 MiniportShutdownEx 함수를 호출하면 미니포트 어댑터가 종료 상태가 됩니다.
초기화 상태에서 미니포트 드라이버는 미니포트 어댑터를 초기화하는 데 필요한 모든 작업을 완료합니다. 미니포트 어댑터가 중지됨 상태이고 NDIS가 미니포트 드라이버의 MiniportInitializeEx 함수를 호출하면 미니포트 어댑터가 초기화 상태가 됩니다. MiniportInitializeEx가 성공하면 미니포트 어댑터가 일시 중지됨 상태로 들어갑니다. MiniportInitializeEx가 실패하면 미니포트 어댑터가 중지됨 상태로 돌아갑니다.
미니포트 어댑터가 일시 중지됨 상태인 경우 미니포트 드라이버는 수신된 네트워크 데이터를 나타내거나 보내기 요청을 수락하지 않습니다. 미니포트 어댑터가 일시 중지 상태이고 일시 중지 작업이 완료되면 미니포트 어댑터가 일시 중지됨 상태로 들어갑니다. 미니포트 어댑터가 초기화 상태이고 MiniportInitializeEx 가 성공하면 미니포트 어댑터가 일시 중지됨 상태로 들어갑니다. NDIS가 미니포트 드라이버의 MiniportRestart 함수를 호출하면 미니포트 어댑터가 일시 중지됨 상태에서 다시 시작 상태로 전환됩니다. NDIS가 미니포트 드라이버의 MiniportHaltEx 함수를 호출하면 미니포트 어댑터가 일시 중지됨 상태에서 중지됨 상태로 전환됩니다.
다시 시작 상태에서 미니포트 드라이버는 미니포트 어댑터에 대한 송신 및 수신 작업을 다시 시작하는 데 필요한 모든 작업을 완료합니다. 미니포트 어댑터가 일시 중지됨 상태이고 NDIS가 드라이버의 MiniportRestart 함수를 호출하면 미니포트 어댑터가 다시 시작 상태로 들어갑니다. 다시 시작이 실패하면 미니포트 어댑터가 일시 중지됨 상태로 돌아갑니다. 다시 시작에 성공하면 미니포트 어댑터가 실행 중 상태로 들어갑니다.
실행 중 상태에서 미니포트 드라이버는 미니포트 어댑터에 대한 일반 송신 및 수신 처리를 수행합니다. 미니포트 어댑터가 다시 시작 중 상태이고 드라이버가 송신 및 수신 작업을 수행할 준비가 되면 미니포트 어댑터가 실행 중 상태가 됩니다.
일시 중지 상태에서 미니포트 드라이버는 미니포트 어댑터에 대한 송신 및 수신 작업을 중지하는 데 필요한 모든 작업을 완료합니다. 드라이버는 NDIS가 미해결 수신 표시를 모두 반환할 때까지 기다려야 합니다. 미니포트 어댑터가 실행 중 상태이고 NDIS가 드라이버의 MiniportPause 함수를 호출하면 미니포트 어댑터가 일시 중지 상태로 들어갑니다. 미니포트 드라이버는 일시 중지 작업에 실패할 수 없습니다. 일시 중지 작업이 완료되면 미니포트 어댑터가 일시 중지됨 상태로 들어갑니다.