NdisIMNotifyPnPEvent 函数 (ndis.h)

注意 NDIS 5。 x 已弃用,由 NDIS 6 取代。 x。 有关新的 NDIS 驱动程序开发,请参阅 从 Windows Vista 开始的网络驱动程序。 有关移植 NDIS 5 的信息。 NDIS 6 的 x 驱动程序。 x,请参阅 将 NDIS 5.x 驱动程序移植到 NDIS 6.0

NdisIMNotifyPnPEvent 将即插即用或电源管理事件的通知传播到过度的驱动程序。

语法

NDIS_STATUS NdisIMNotifyPnPEvent(
  [in] NDIS_HANDLE    MiniportHandle,
  [in] PNET_PNP_EVENT NetPnPEvent
);

参数

[in] MiniportHandle

MiniportInitialize 的句柄输入。 此句柄表示受传递给调用方 ProtocolPnPEvent 函数的即插即用或电源管理事件影响的微型端口驱动程序。

[in] NetPnPEvent

指向NET_PNP_EVENT结构的指针,该结构描述要指示给协议驱动程序的即插即用事件或电源管理事件。

返回值

NdisIMNotifyPnPEvent 可以返回以下任一项:

返回代码 说明
NDIS_STATUS_SUCCESS 过度覆盖的驱动程序已成功传播即插即用事件成功。
NDIS_STATUS_FAILURE 过度分配的驱动程序使传播即插即用事件失败。

仅当传播的事件是 NetEventQueryPowerNetEventQueryRemove 时,返回值才有效。 对于所有其他传播事件,返回值始终NDIS_STATUS_SUCCESS。

注解

NDIS 中间驱动程序在驱动程序的 ProtocolPnPEvent 函数的上下文中调用 NdisIMNotifyPnPEvent,以将即插即用或电源管理事件的通知传播到过度的驱动程序。

如果传播的事件是 NetEventQueryPowerNetEventQueryRemove,则中间驱动程序必须检查 NdisIMNotifyPnPEvent 返回的NDIS_STATUS值。 如果返回的状态为NDIS_STATUS_SUCCESS,则中间驱动程序应像往常一样在内部处理事件,然后从其 ProtocolPnPEvent 函数返回NDIS_STATUS_SUCCESS。 如果返回的状态为NDIS_STATUS_FAILURE,则中间驱动程序应从其 ProtocolPnPEvent 返回NDIS_STATUS_FAILURE,而无需进一步处理。

对于所有其他传播事件, NdisIMNotifyPnPEvent 始终返回NDIS_STATUS_SUCCESS。 在这种情况下,中间驱动程序的 ProtocolPnPEvent 函数应传播 NdisIMNotifyPnPEvent 返回的NDIS_STATUS。

中间驱动程序如何处理由其 ProtocolPnPEvent 函数接收的 NetEventSetPower 取决于指定的设备电源状态。 如果指定的设备电源状态为 NdisDeviceStateD0,则中间驱动程序应像往常一样在内部处理事件,然后调用 NdisIMNotifyPnPEvent。 对于任何其他指定的设备电源状态,中间驱动程序应首先调用 NdisIMNotifyPnPEvent ,然后像往常一样在内部处理事件。

仅当非 NULLProtocolBindingContext 上指示 NetEventReconfigureNetEventBindList 时,中间驱动程序应调用 NdisIMNotifyPnPEvent 以传播 NetEventReconfigureNetEventBindList 如果在 NULLProtocolBindingContext 上指示 NetEventReconfigureNetEventBindList,则中间驱动程序不应调用 NdisIMNotifyPnPEvent 来传播事件。

如果中间驱动程序处理 NetEventReconfigureNetEventBindList,则应验证与事件关联的任何数据。 (有关此类数据的详细信息,请参阅 协议驱动程序NET_PNP_EVENT。)

Windows XP 及更高版本中提供对 NdisIMNotifyPnPEvent 的系统支持。

  • 目标平台: 通用
  • 版本:Windows Vista 中的 NDIS 6.0 驱动程序不支持。 请改用 NdisMNetPnPEvent。 支持 Windows Vista 和 Windows XP 中的 NDIS 5.1 驱动程序。

要求

要求
Header ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL

另请参阅