Compartir a través de


MINIPORT_DEVICE_PNP_EVENT_NOTIFY función de devolución de llamada (ndis.h)

NDIS llama a la función MiniportDevicePnPEventNotify de un controlador de miniporte para notificar al controlador de eventos Plug and Play (PnP).

Nota Debe declarar la función mediante el tipo MINIPORT_DEVICE_PNP_EVENT_NOTIFY. Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;

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

Parámetros

[in] MiniportAdapterContext

Identificador de un área de contexto que el controlador de miniporta asignó en su función MiniportInitializeEx. El controlador de miniporte usa este área de contexto para mantener la información de estado de un adaptador de miniporte.

[in] NetDevicePnPEvent

Puntero a una estructura de NET_DEVICE_PNP_EVENT que describe un evento Plug and Play del dispositivo.

Valor devuelto

Ninguno

Observaciones

Un controlador especifica el MiniportDevicePnPEventNotify punto de entrada cuando llama a . función NdisMRegisterMiniportDriver.

NDIS llama a la función del controlador MiniportDevicePnPEventNotify con el miembro DevicePnPEvent del parámetro NetDevicePnPEvent establecido en NdisDevicePnPEventPowerProfileChanged después de uno de los eventos siguientes:

  • La inicialización del controlador se ha completado.
  • El controlador recibió una notificación OID_PNP_SET_POWER que especifica el estado encendido ( NdisDeviceStateD0).
En el segundo caso, el valor de InformationBuffer indica si el sistema se está ejecutando con batería (NdisPowerProfileBattery) o potencia de CA (NdisPowerProfileAcOnline). Un controlador puede usar esta información para ajustar el consumo de energía del adaptador de miniporte especificado. Por ejemplo, el controlador para un dispositivo LAN inalámbrico podría reducir el consumo de energía si el sistema se está ejecutando en batería o aumentar el consumo de energía si el sistema se está ejecutando en energía de CA.

Cuando un controlador recibe una notificación de eliminación sorpresa (el DevicePnPEvent miembro del netDevicePNPEvent parámetro es NdisDevicePnPEventSurpriseRemoved), debe:

  • Tenga en cuenta internamente que el dispositivo se ha quitado.
  • Cancele los IRP pendientes que envió al controlador de bus subyacente.
Después de que NDIS llame a la función MiniportDevicePnPEventNotify para indicar una eliminación sorpresa, NDIS llama a la función MiniportHaltEx del controlador. Si el controlador recibe solicitudes de envío o solicitudes OID antes de que las llamadas NDIS MiniportHaltEx, debe completar inmediatamente estas solicitudes con un valor de estado de NDIS_STATUS_NOT_ACCEPTED.

NDIS llama a MiniportDevicePnPEventNotify en IRQL = PASSIVE_LEVEL.

Ejemplos de

Para definir un función MiniportDevicePnPEventNotify, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función MiniportDevicePnPEventNotify denominada "MyDevicePnPEventNotify", use el tipo MINIPORT_DEVICE_PNP_EVENT_NOTIFY tal como se muestra en este ejemplo de código:

MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;

A continuación, implemente la función de la siguiente manera:

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

El tipo de función MINIPORT_DEVICE_PNP_EVENT_NOTIFY se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_DEVICE_PNP_EVENT_NOTIFY en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.

Requisitos

Requisito Valor
cliente mínimo admitido Se admite en NDIS 6.0 y versiones posteriores.
de la plataforma de destino de Windows
encabezado de ndis.h (incluya Ndis.h)
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI NdisOidComplete

Consulte también

MiniportHaltEx

MiniportInitializeEx

NET_DEVICE_PNP_EVENT

NdisMRegisterMiniportDriver

OID_PNP_SET_POWER