미디어 연결 끊김의 저전력

미디어 연결 끊김(연결 끊김 시 D3)의 저전력 기능은 미디어 연결이 끊어지면 네트워크 어댑터를 저전력 상태(D3)에 배치하여 전원을 절약합니다. 미디어가 다시 연결되면 네트워크 어댑터가 전체 전원 상태(D0)로 다시 연결됩니다.

NDIS는 다음 조건에서 연결 끊기에서 D3 기능을 사용합니다.

  • 네트워크 어댑터 하드웨어는 미디어 연결 시 절전 모드 해제 이벤트를 생성할 수 있어야 합니다.

  • 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조의 MinLinkChangeWakeUp 멤버에서 네트워크 어댑터의 절전 모드 해제 이벤트 기능을 보고해야 합니다.

  • MinLinkChangeWakeUp 값은 IRP_MN_QUERY_CAPABILITIES IRP에서 보고하는 DEVICE_CAPABILITIES 구조체의 DeviceWake 멤버 값에 해당해야 합니다.

  • 미니포트 드라이버는 NDIS 6.20 이상 버전으로 등록해야 합니다.

  • 네트워크 어댑터는 이더넷 PCI 어댑터여야 합니다.

  • 절전 모드 해제 이벤트 기능은 *DeviceSleepOnDisconnect 표준 INF 파일 키워드(keyword) 사용하도록 설정해야 합니다.

  • 컴퓨터 전원이 완전히 공급되는 동안 컴퓨터 칩셋이 절전 모드 해제 이벤트를 올바르게 전파할 수 있어야 합니다. NDIS는 DEVPKEY_PciDevice_S0WakeupSupported PCI 속성을 쿼리하여 이 유효성을 검사합니다.

연결 해제 시 D3는 컴퓨터가 S0(작업 상태)에서 완전히 구동되는 동안에만 사용할 수 있습니다. 이 기능은 컴퓨터가 절전 모드 상태가 되면 링크 상태가 외부에서 순환될 때 컴퓨터의 절전 모드 해제를 방지하기 위해 취소됩니다. 즉, 스위치가 꺼져 있고 켜져 있는 경우입니다. 컴퓨터가 절전 모드 상태가 될 때 저전력 상태를 설정하는 방법에 대한 자세한 내용은 Wake on LAN에 대한 저전력을 참조하세요.

미니포트 드라이버는 초기화 중에 연결 끊기 기능에 대해 D3를 보고합니다. 연결 끊기 기능에 대한 D3 보고에 대한 자세한 내용은 보고 전원 관리 기능을 참조하세요.

*DeviceSleepOnDisconnect 표준 INF 파일 키워드(keyword) 디바이스가 연결 끊김 시 D3에 대한 지원을 사용하도록 설정했는지 여부를 지정합니다. 이 INF 키워드(keyword) 대한 자세한 내용은 Power Management용 표준화된 INF 키워드를 참조하세요.

초기화하는 동안 연결 해제 시 D3를 지원하는 미니포트 드라이버는 운영 체제에 미디어 연결 이벤트를 알리는 기능을 지원할 수 있는 가장 낮은 전원 수준을 보고해야 합니다. 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조체의 MinLinkChangeWakeUp 멤버에서 전원 수준을 보고합니다. 예를 들어 미니포트 드라이버는 NdisDeviceStateD3을 보고할 수 있습니다.

다음 그림에서는 미디어 연결 끊기 이벤트 후 네트워크 어댑터를 저전력 상태로 설정하는 이벤트 시퀀스를 보여 줍니다.

미디어 연결 끊기 이벤트 후 네트워크 어댑터를 저전력 상태로 설정하는 이벤트 시퀀스를 보여 주는 다이어그램

어댑터가 미디어 연결 끊기를 감지하면 다음 시퀀스가 발생합니다.

  1. 네트워크 어댑터 하드웨어는 미디어 연결 끊기 이벤트를 감지하고 미니포트 드라이버에 정보를 전달합니다.

  2. 미니포트 드라이버는 NDIS_STATUS_LINK_STATE 상태 표시를 사용하여 미디어 연결 끊기 이벤트를 NDIS에 알린다. NDIS_STATUS_INDICATION 구조체의 StatusBuffer 멤버에는 NDIS_LINK_STATE 구조체가 포함되어 있습니다. MediaConnectStateDisconnected 값은 NDIS_LINK_STATE 구조체의 MediaConnectState 멤버에 설정됩니다.

  3. NDIS는 OID_PM_PARAMETERS 사용하여 Wake-on-LAN을 사용하지 않도록 설정하고 미디어 연결에서 절전 모드 해제를 사용하도록 설정합니다( NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED WakeUpFlags 멤버에서 설정됨).

  4. NDIS는 OID_PNP_SET_POWER OID를 사용하여 미니포트 드라이버에 새 전원 상태(D3)를 알립니다.

  5. NDIS는 다시 연결 이벤트를 기다리도록 PCIe 버스에 IRP_MN_WAIT_WAKE IRP를 보냅니다.

  6. NDIS는 IRP_MN_SET_POWER IRP 를 사용하여 PCIe 버스를 D3 상태로 설정합니다.

다음 그림에서는 미디어 연결 이벤트 후 네트워크 어댑터에 전체 전원을 복원하는 이벤트 시퀀스를 보여 줍니다.

미디어 연결 이벤트 후 전체 전원을 nic로 복원하는 이벤트 시퀀스를 보여 주는 다이어그램

미디어를 다시 연결하면 다음 시퀀스가 발생합니다.

  1. 네트워크 어댑터는 PCI 버스의 PCIe 버스 또는 PME#에서 WAKE#을 어설션하여 시스템을 절전 모드에서 해제합니다.

  2. 버스는 보류 중인 IRP_MN_WAIT_WAKE IRP를 완료합니다. IRP는 연결 끊기 시퀀스의 마지막 단계에서 완료를 보류 중입니다.

  3. NDIS는 IRP_MN_SET_POWER IRP를 사용하여 버스를 전체 전원(D0)으로 설정합니다.

  4. NDIS는 네트워크 어댑터가 OID_PNP_SET_POWER OID 집합 요청을 사용하여 네트워크 어댑터가 전체 전원(D0) 상태임을 미니포트 드라이버에 알깁니다.

  5. 네트워크 어댑터는 NDIS_STATUS_LINK_STATE 상태 표시와 함께 미디어 연결 이벤트의 NDIS를 알 수 있습니다. MediaConnectStateConnected 값은 NDIS_LINK_STATE 구조체의 MediaConnectState 멤버에 설정됩니다.

NDIS 6.30부터 미니포트 드라이버가 NDIS_STATUS_PM_WAKE_REASON 상태 표시를 지원하는 경우 네트워크 어댑터가 시스템을 절전 모드에서 해제하는 경우 이 상태 알림을 실행해야 합니다. 드라이버는 전체 전원(D0) 상태로 전환하기 위해 OID_PNP_SET_POWER OID 집합 요청을 처리하는 동안 이 상태 알림을 발급합니다.

자세한 내용은 NDIS 절 해제 이유 상태 표시를 참조하세요.

참고 미니포트 드라이버가 NDIS_STATUS_PM_WAKE_REASON 상태 표시를 발급하는 경우 NDIS_STATUS_LINK_STATE 상태 표시를 발급하기 전에 이 작업을 수행해야 합니다.