NdisMNetPnPEvent 함수(ndis.h)
NDIS 미니포트 드라이버(및 미니포트 드라이버로 등록된 중간 드라이버)는 NdisMNetPnPEvent 함수를 호출하여 네트워크 플러그 앤 플레이 이벤트, NDIS PnP 이벤트 또는 전원 관리 이벤트를 시작하거나 지나치게 많은 드라이버에 전파합니다.
통사론
NDIS_STATUS NdisMNetPnPEvent(
[in] NDIS_HANDLE MiniportAdapterHandle,
PNET_PNP_EVENT_NOTIFICATION NetPnPEventNotification
);
매개 변수
[in] MiniportAdapterHandle
MiniportInitializeEx 함수의 MiniportAdapterHandle 매개 변수에서 NDIS가 제공한 NDIS 핸들입니다. 이 핸들은 이벤트의 영향을 받는 미니포트 어댑터를 식별합니다. 호출자가 중간 드라이버인 경우 가상 미니포트의 핸들입니다.
NetPnPEventNotification
a에 대한 포인터 네트워크 플러그 앤 플레이 이벤트, NDIS PnP 이벤트 또는 Power Management 이벤트를 설명하는 NET_PNP_EVENT_NOTIFICATION 구조입니다.
중요하다
NetPnpEventNotificationVPortId 필드가 NDIS_DEFAULT_VPORT_ID 다른 값으로 설정된 경우 VPortId 적용하려면 Flags 멤버를 NET_EVENT_FLAGS_VPORT_ID_VALID 설정해야 합니다.
반환 값
NdisMNetPnPEvent 다음을 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
오버레이 드라이버가 플러그 앤 플레이 또는 전원 관리 이벤트를 성공적으로 처리했습니다. |
|
지나치게 많은 드라이버는 표시된 플러그 앤 플레이 또는 전원 관리 이벤트를 충족하는 데 필요한 시스템 리소스를 가져올 수 없습니다. |
|
일부 입력 매개 변수가 잘못되어 NDIS가 호출에 실패했습니다. |
|
NDIS 6.0 이상 프로토콜 드라이버는 이 상태를 반환해서는 안 됩니다. NDIS 5. 플러그 앤 플레이를 지원하지 않는x 프로토콜 드라이버는 NetEventSetPower 대한 응답으로 이 상태를 반환하여 NDIS가 기본 어댑터에서 바인딩을 해제해야 함을 나타낼 수 있습니다. |
|
잘못된 NDIS 포트가 NetEventPortActivation 또는 NetEventPortDeactivation PnP 이벤트에 지정되었기 때문에 NDIS가 요청에 실패했습니다. |
|
NDIS 포트가 잘못된 포트 상태이므로 NDIS가 요청에 실패했습니다. 포트는 NetEventPortActivation 또는 NetEventPortDeactivation PnP 이벤트에 지정됩니다. |
|
지나치게 많은 드라이버가 전파된 플러그 앤 플레이 또는 전원 관리 이벤트를 처리하지 못했습니다. |
반환 값은 전파된 이벤트가 NetEventQueryPower 또는 NetEventQueryRemoveDevice 이벤트인 경우에만 중요합니다. 전파된 다른 모든 이벤트의 경우 반환 값은 항상 NDIS_STATUS_SUCCESS.
이벤트가 NetEventPortActivation 호출이 실패하는 경우 호출자는 수신 표시 또는 상태 표시에 연결된 포트를 사용하지 않아야 합니다.
발언
모든 미니포트 드라이버는 NdisMNetPnPEvent 호출하여 NetEventPortActivation 생성하고 netEventPortDeactivation 이벤트를 수 있습니다. 중간 드라이버만 다른 이벤트 알림을 만들 수 있습니다.
- MiniportOidRequest 함수는 NdisMNetPnPEvent호출해서는 안 됩니다.
- MiniportOidRequest 함수가 OID 요청에 대한 NDIS_STATUS_PENDING 반환하는 경우 NDIS 드라이버는 NdisMOidRequestComplete호출하여 OID 요청을 완료할 때까지 NdisMNetPnPEvent 호출하지 않아야 합니다.
전파된 이벤트가 NetEventQueryPower 또는 NetEventQueryRemoveDevice 경우 중간 드라이버는 NdisMNetPnPEvent반환된 NDIS_STATUS 값을 확인해야 합니다. 반환된 상태가 NDIS_STATUS_SUCCESS 경우 중간 드라이버는 이벤트를 처리한 다음 ProtocolNetPnPEvent 함수에서 NDIS_STATUS_SUCCESS 반환해야 합니다. 반환된 상태가 NDIS_STATUS_SUCCESS 않으면 중간 드라이버는 추가 처리 없이 ProtocolNetPnPEvent 함수에서 보고된 상태를 반환해야 합니다.
중간 드라이버가 ProtocolNetPnPEvent 함수에서 받은 NetEventSetPower 처리하는 방법은 지정된 디바이스 전원 상태에 따라 달라집니다. 지정된 디바이스 전원 상태가 NdisDeviceStateD0 경우 중간 드라이버는 이벤트를 처리한 다음 NdisMNetPnPEvent호출해야 합니다. 지정된 다른 디바이스 전원 상태의 경우 중간 드라이버는 먼저 NdisMNetPnPEvent 호출한 다음 이벤트를 처리해야 합니다.
중간 드라이버는 NdisMNetPnPEvent 호출하여 NetEventReconfigure 전파하거나 NetEventBindListNetEventReconfigure 또는 NetEventBindListNULLProtocolBindingContext표시됩니다. NetEventReconfigure 또는 NetEventBindListNULLProtocolBindingContext표시되는 경우 중간 드라이버는 NdisMNetPnPEvent 호출하여 이벤트를 전파하면 안 됩니다.
중간 드라이버가 NetEventReconfigure 또는 NetEventBindList처리하는 경우 이벤트와 연결된 데이터의 유효성을 검사해야 합니다.
중간 드라이버는 NdisMNetPnPEvent호출하여 NetEventBindsComplete, NetEventPause, NetEventRestart, NetEventPortActivation또는 NetEventPortDeactivation 이벤트를 전파해서는 안 됩니다.
NDIS 중간 드라이버는 ProtocolNetPnPEvent 함수에서 수신하는 NetEventPortActivation 또는 NetEventPortDeactivation 이벤트에 적절하게 가상 미니포트에 대한 자체 NDIS 포트 이벤트를 생성할 수 있습니다.
다른 모든 전파 이벤트의 경우 중간 드라이버의 ProtocolNetPnPEvent 함수는 NdisMNetPnPEvent반환되는 상태 값을 전파해야 합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
대상 플랫폼 | 보편적 |
헤더 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | Irql_Protocol_Driver_Function(ndis), NdisMNetPnPEventInOIDRequest(ndis) |