다음을 통해 공유


바인딩 다시 시작

일시 중지된 바인딩을 다시 시작하기 위해 NDIS는 프로토콜 드라이버에 PnP(네트워크 플러그 앤 플레이) 다시 시작 이벤트 알림을 보냅니다. 프로토콜 드라이버가 다시 시작 알림을 받으면 영향을 받는 바인딩이 다시 시작 상태로 들어갑니다.

다시 시작 알림을 보내기 위해 NDIS는 프로토콜 드라이버의 ProtocolNetPnPEvent 함수를 호출합니다. NDIS가 ProtocolNetPnPEvent에 전달하는 NET_PNP_EVENT_NOTIFICATION 구조체는 NetEvent 멤버에서 NetEventRestart를 지정하고 Buffer 멤버는 NDIS_PROTOCOL_RESTART_PARAMETERS 구조체에 대한 포인터를 포함합니다. NDIS는 NDIS_PROTOCOL_RESTART_PARAMETERS 구조체의 RestartAttributes 멤버에서 NDIS_RESTART_ATTRIBUTES 구조체에 대한 포인터를 제공합니다.

참고 바인딩이 일시 중지된 동안 NDIS는 드라이버 스택을 다시 구성했을 수 있습니다. 새 스택 구성은 기본 어댑터에 대해 다른 기능 집합을 지원할 수 있습니다. 이러한 새로운 기능은 프로토콜 드라이버가 바인딩에서 통신하는 방식에 영향을 줄 수 있습니다.

프로토콜 드라이버는 불필요한 OID 요청을 방지하기 위해 NDIS_PROTOCOL_RESTART_PARAMETERS 구조의 정보를 사용해야 합니다.

다시 시작 상태에서 프로토콜 드라이버는 다음을 수행할 수 있습니다.

  • OID 요청을 사용하여 드라이버 스택을 쿼리합니다. 예를 들어 드라이버는 OID_GEN_RECEIVE_SCALE_CAPABILITIES 사용하여 수신 측 크기 조정에 대한 지원을 확인할 수 있습니다.

  • 필요한 경우 NET_BUFFER 다시 할당하고 풀을 NET_BUFFER_LIST .

  • 기본 필터 모듈 목록을 열거합니다.

  • OID 요청을 사용하여 새 어댑터 기능을 표시합니다.

드라이버가 바인딩에 대한 보내기 및 받기 작업을 다시 시작할 준비가 되면 바인딩이 실행 중 상태로 들어갑니다.