MINIPORT_CHECK_FOR_HANG función de devolución de llamada (ndis.h)
Advertencia
Las funciones de devolución de llamada MiniportCheckForHangEx y MiniportResetEx no son recomendables para todos los controladores NDIS 6.83 y versiones posteriores. Para obtener más información, vea Operaciones de comprobación de bloqueo y restablecimiento en NDIS 6.83 y versiones posteriores.
NDIS llama a la función MiniportCheckForHangEx del controlador de miniporte para comprobar el estado operativo del adaptador de minipuerto que representa una tarjeta de interfaz de red (NIC).
Sintaxis
MINIPORT_CHECK_FOR_HANG MiniportCheckForHang;
BOOLEAN MiniportCheckForHang(
[in] NDIS_HANDLE MiniportAdapterContext
)
{...}
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.
Valor devuelto
MiniportCheckForHangEx devuelve TRUE si el controlador determina que una NIC no funciona y NDIS debe llamar a la función MiniportResetEx del controlador. Para obtener más información, vea la sección Comentarios.
Comentarios
Un controlador de minipuerto especifica el punto de entrada MiniportCheckForHangEx cuando llama al Función NdisMRegisterMiniportDriver .
MiniportCheckForHangEx no es necesario para controladores intermedios.
MiniportCheckForHangEx no hace nada más que comprobar el estado interno de la NIC y devolver TRUE si detecta que la NIC no funciona correctamente.
De forma predeterminada, NDIS llama a MiniportCheckForHangEx aproximadamente cada dos segundos. Por este motivo, la función MiniportCheckForHangEx del controlador miniport debe devolver lo más rápido posible.
Si un controlador de minipuerto no completa una solicitud de OID en dos llamadas sucesivas a MiniportCheckForHangEx, NDIS puede llamar a la función MiniportResetEx del controlador. Sin embargo, para evitar restablecimientos innecesarios, la función MiniportInitializeEx del controlador puede ampliar el intervalo de tiempo de espera de comprobación de bloqueo estableciendo un valor CheckForHangTimeInSeconds adecuado cuando llama al Función NdisMSetMiniportAttributes .
Para obtener más información sobre cómo establecer el valor de tiempo de espera checkForHangTimeInSeconds , vea Miniport Adapter Check-for-Hang and Reset Operations.
NDIS llama a MiniportCheckForHangEx en IRQL = PASSIVE_LEVEL.
Ejemplos
Para definir una función MiniportCheckForHangEx , 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 MiniportCheckForHangEx denominada "MyCheckForHangEx", use el tipo de MINIPORT_CHECK_FOR_HANG como se muestra en este ejemplo de código:
MINIPORT_CHECK_FOR_HANG MyCheckForHangEx;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
BOOLEAN
MyCheckForHangEx(
NDIS_HANDLE MiniportAdapterContext
)
{...}
El tipo de función MINIPORT_CHECK_FOR_HANG 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_CHECK_FOR_HANG 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 |
Consulte también
Operaciones de comprobación de bloqueo y restablecimiento del adaptador de miniporte