다음을 통해 공유


NDIS 선택적 일시 중단 처리기 함수 등록

미니포트 드라이버가 NDIS 선택적 일시 중단을 지원하는 경우 NDIS는 기본 네트워크 어댑터가 유휴 상태임을 드라이버에 알릴 수 있습니다. 미니포트 드라이버는 이러한 유휴 알림을 처리하기 위해 다음 함수를 제공해야 합니다.

MiniportIdleNotification
NDIS는 MiniportIdleNotification 처리기 함수를 호출하여 네트워크 어댑터가 유휴 상태가 되었음을 미니포트 드라이버에 알립니다. 미니포트 드라이버는 네트워크 어댑터가 저전력 상태로 전환할 수 있는지 여부를 결정하여 유휴 알림을 처리합니다. 미니포트 드라이버는 버스별 방식으로 이 결정을 수행합니다.

예를 들어 USB 미니포트 드라이버는 USB 유휴 요청(IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION)에 대한 IRP(I/O 요청 패킷)를 기본 USB 버스 드라이버로 실행하여 네트워크 어댑터가 저전력 상태로 전환할 수 있는지 여부를 결정합니다. 이 IRP의 처리를 통해 미니포트 드라이버는 어댑터가 유휴 상태이며 저전력 상태로 전환될 수 있다는 알림을 받습니다.

MiniportCancelIdleNotification
NDIS는 MiniportCancelIdleNotification 처리기 함수를 호출하여 미해결 유휴 알림을 취소합니다. 이 함수가 호출되면 미니포트 드라이버는 유휴 알림에 대해 이전에 발급했을 수 있는 버스별 IRP를 취소합니다.

예를 들어 MiniportCancelIdleNotification 이 호출되면 USB 미니포트는 이전에 발급한 USB 유휴 요청 IRP를 취소해야 합니다. IRP가 취소되면 미니포트 드라이버는 이제 어댑터를 전체 전원 상태로 전환할 수 있다는 알림을 받습니다.

미니포트 드라이버의 DriverEntry 함수가 호출되면 드라이버는 다음 단계에 따라 NDIS 선택적 일시 중단 처리기 함수를 등록합니다.

  1. 미니포트 드라이버는 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 구조체의 SetOptionsHandler 멤버를 드라이버의 MiniportSetOptions 함수의 진입점으로 설정해야 합니다. 드라이버는 NdisMRegisterMiniportDriver 를 호출하여 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 구조를 NDIS에 등록합니다.

  2. NDIS는 NdisMRegisterMiniportDriver 호출의 컨텍스트에서 MiniportSetOptions 함수를 호출합니다.

    MiniportSetOptions가 호출되면 미니포트 드라이버는 처리기 함수에 대한 포인터를 사용하여 NDIS_MINIPORT_SS_CHARACTERISTICS 구조를 초기화합니다. 그런 다음 미니포트 드라이버는 NdisSetOptionalHandlers를 호출하고 OptionalHandlers 매개 변수를 NDIS_MINIPORT_SS_CHARACTERISTICS 구조체에 대한 포인터로 설정합니다.

NDIS 선택적 일시 중단에 대한 유휴 알림을 처리하는 방법에 대한 자세한 내용은 NDIS 선택적 일시 중단 유휴 알림을 참조하세요.