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 los eventos de Plug and Play (PnP).
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 minipuerto asignó en su función MiniportInitializeEx . El controlador de minipuerto usa este área de contexto para mantener la información de estado de un adaptador de minipuerto.
[in] NetDevicePnPEvent
Puntero a una estructura de NET_DEVICE_PNP_EVENT que describe un evento de Plug and Play del dispositivo.
Valor devuelto
None
Observaciones
Un controlador especifica el punto de entrada MiniportDevicePnPEventNotify cuando llama al Función NdisMRegisterMiniportDriver .
NDIS llama a la función MiniportDevicePnPnPEventNotify del controlador con el miembro DevicePnPEvent del parámetro NetDevicePnPEvent establecido en NdisDevicePnPEventPowerProfileChanged después de uno de los siguientes eventos:
- Se ha completado la inicialización del controlador.
- El controlador recibió una notificación de OID_PNP_SET_POWER que especifica el estado encendido ( NdisDeviceStateD0).
Cuando un controlador recibe una notificación de eliminación sorpresa (el miembro DevicePnPEvent del parámetro NetDevicePnPEvent es NdisDevicePnPEventSurpriseRemoved), debe:
- Tenga en cuenta internamente que se ha quitado el dispositivo.
- Cancele los IRP pendientes que envió al controlador de bus subyacente.
NDIS llama a MiniportDevicePnPEventNotify en IRQL = PASSIVE_LEVEL.
Ejemplos
Para definir una función MiniportDevicePnPEventNotify , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir una función MiniportDevicePnPNPEventNotify denominada "MyDevicePnPEventNotify", use el tipo MINIPORT_DEVICE_PNP_EVENT_NOTIFY 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, consulte 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, consulte Anotación del comportamiento de la función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Windows |
Encabezado | ndis.h (incluya Ndis.h) |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | NdisOidComplete |