Share via


MINIPORT_DEVICE_PNP_EVENT_NOTIFY 콜백 함수(ndis.h)

NDIS는 미니포트 드라이버의 MiniportDevicePnPEventNotify 함수를 호출하여 드라이버에 플러그 앤 플레이(PnP) 이벤트를 알립니다.

참고MINIPORT_DEVICE_PNP_EVENT_NOTIFY 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.
 

구문

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;

void MiniportDevicePnpEventNotify(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}

매개 변수

[in] MiniportAdapterContext

Miniport 드라이버가 MiniportInitializeEx 함수에 할당한 컨텍스트 영역에 대한 핸들입니다. 미니포트 드라이버는 이 컨텍스트 영역을 사용하여 미니포트 어댑터에 대한 상태 정보를 유지 관리합니다.

[in] NetDevicePnPEvent

디바이스 플러그 앤 플레이 이벤트를 설명하는 NET_DEVICE_PNP_EVENT 구조체에 대한 포인터입니다.

반환 값

없음

설명

드라이버는 를 호출할 때 MiniportDevicePnPEventNotify 진입점을 지정합니다. NdisMRegisterMiniportDriver 함수.

NDIS는 다음 이벤트 중 하나 후 NdisDevicePnPEventPowerProfileChanged로 설정된 NetDevicePnPevent 매개 변수의 DevicePnPEvent 멤버를 사용하여 드라이버의 MiniportDevicePnPEventNotify 함수를 호출합니다.

  • 드라이버 초기화가 완료되었습니다.
  • 드라이버가 전원이 켜진 상태(NdisDeviceStateD0)를 지정하는 OID_PNP_SET_POWER 알림을 받았습니다.
두 번째 경우 InformationBuffer 값은 시스템이 배터리 전원(NdisPowerProfileBattery) 또는 AC 전원(NdisPowerProfileAcOnline)에서 실행 중인지 여부를 나타냅니다. 드라이버는 이 정보를 사용하여 지정된 미니포트 어댑터의 전력 소비를 조정할 수 있습니다. 예를 들어 무선 LAN 디바이스용 드라이버는 시스템이 배터리 전원으로 실행되는 경우 전력 소비를 줄이거나 시스템이 AC 전원에서 실행되는 경우 전력 소비를 늘릴 수 있습니다.

드라이버가 깜짝 제거 알림을 받으면(NetDevicePnPnPEvent 매개 변수의 DevicePnPEvent 멤버가 NdisDevicePnPEventSurpriseRemoved임) 다음을 수행해야 합니다.

  • 내부적으로 디바이스가 제거되었습니다.
  • 기본 버스 드라이버로 전송된 보류 중인 IRP를 취소합니다.
NDIS가 MiniportDevicePnPEventNotify 함수를 호출하여 기습 제거를 나타내면 NDIS는 드라이버의 MiniportHaltEx 함수를 호출합니다. NDIS가 MiniportHaltEx를 호출하기 전에 드라이버가 전송 요청 또는 OID 요청을 수신하는 경우 상태 값이 NDIS_STATUS_NOT_ACCEPTED 이러한 요청을 즉시 완료해야 합니다.

NDIS는 IRQL = PASSIVE_LEVEL MiniportDevicePnPEventNotify 를 호출합니다.

MiniportDevicePnPEventNotify 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾는 데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MyDevicePnPEventNotify"라는 MiniportDevicePnPEventNotify 함수를 정의하려면 이 코드 예제와 같이 MINIPORT_DEVICE_PNP_EVENT_NOTIFY 형식을 사용합니다.

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MyDevicePnPEventNotify(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_DEVICE_PNP_EVENT  NetDevicePnPEvent
    )
  {...}

MINIPORT_DEVICE_PNP_EVENT_NOTIFY 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 MINIPORT_DEVICE_PNP_EVENT_NOTIFY 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 NdisOidComplete

추가 정보

MiniportHaltEx

MiniportInitializeEx

NET_DEVICE_PNP_EVENT

NdisMRegisterMiniportDriver

OID_PNP_SET_POWER