FILTER_NET_PNP_EVENT función de devolución de llamada (ndis.h)
NDIS llama a la función FilterNetPnPEvent de un controlador de filtro para notificar al controlador de eventos de Plug and Play de red (PnP) y administración de energía.
Sintaxis
FILTER_NET_PNP_EVENT FilterNetPnpEvent;
NDIS_STATUS FilterNetPnpEvent(
[in] NDIS_HANDLE FilterModuleContext,
[in] PNET_PNP_EVENT_NOTIFICATION NetPnPEventNotification
)
{...}
Parámetros
[in] FilterModuleContext
Identificador del área de contexto del módulo de filtro. El controlador de filtro creó e inicializó este área de contexto en la función FilterAttach .
[in] NetPnPEventNotification
Puntero a NET_PNP_EVENT_NOTIFICATION estructura, que describe el evento PnP o el evento de Administración de energía que se indica al controlador de filtro.
Valor devuelto
FilterNetPnPEvent puede devolver cualquiera de las siguientes opciones:
Código devuelto | Descripción |
---|---|
|
El controlador procesó correctamente el evento PnP. |
|
El controlador produjo un error en el evento PnP. |
El valor devuelto solo es significativo cuando el evento propagado es un evento NetEventQueryPower o un evento NetEventQueryRemove . Para todos los demás eventos propagados, el valor devuelto siempre se NDIS_STATUS_SUCCESS.
Comentarios
FilterNetPnPEvent es una función opcional. Si un controlador de filtro no controla los eventos PnP de red, puede establecer el punto de entrada de esta función en NULL cuando llama a . Función NdisFRegisterFilterDriver .
FilterNetPnPEvent es similar a la función ProtocolNetPnPEvent del controlador de protocolo. Un controlador de filtro puede reenviar estas notificaciones a los controladores que se sobreponen o puede controlarlas y no reenviarlas. Para reenviar una notificación, llame a la función NdisFNetPnPEvent . No confunda esta función con Función FilterDevicePnPEventNotify , que filtra las notificaciones que se dirigen a la pila a los controladores subyacentes.
NDIS llama a FilterNetPnPEvent para notificar a un controlador de filtro un evento PnP o Power Management que se emitió para una NIC subyacente. NDIS llama a la función FilterNetPnPEvent de cada controlador de filtro que sobrepone una NIC y, a continuación, llama a la función ProtocolNetPnPEvent de cada controlador de protocolo sobreaplicado.
Cuando se inserta o elimina un módulo de filtro de una pila de controladores, las características de la pila pueden cambiar. NDIS envía un evento PnP a todos los enlaces de protocolo afectados y los módulos de filtro para notificarles este cambio. Los controladores de filtro deben controlar estos cambios adecuadamente.
NDIS llama a FilterNetPnPEvent en IRQL = PASSIVE_LEVEL.
Ejemplos
Para definir una función FilterNetPnPEvent , 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 FilterNetPnPEvent denominada "MyNetPnPEvent", use el tipo de FILTER_NET_PNP_EVENT como se muestra en este ejemplo de código:
FILTER_NET_PNP_EVENT MyNetPnPEvent;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
NDIS_STATUS
MyNetPnPEvent(
NDIS_HANDLE FilterModuleContext,
PNET_PNP_EVENT_NOTIFICATION NetPnPEvent
)
{...}
El tipo de función FILTER_NET_PNP_EVENT 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 FILTER_NET_PNP_EVENT en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante 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 | Compatible con NDIS 6.0 y versiones posteriores. |
Plataforma de destino | Windows |
Encabezado | ndis.h (incluya Ndis.h) |
IRQL | PASSIVE_LEVEL |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de