MINIPORT_ENABLE_MESSAGE_INTERRUPT función de devolución de llamada (ndis.h)
NDIS puede llamar a la función MiniportEnableMessageInterrupt del controlador de miniporte para habilitar una interrupción del mensaje con fines de diagnóstico y solución de problemas.
Sintaxis
MINIPORT_ENABLE_MESSAGE_INTERRUPT MiniportEnableMessageInterrupt;
void MiniportEnableMessageInterrupt(
[in] NDIS_HANDLE MiniportInterruptContext,
[in] ULONG MessageId
)
{...}
Parámetros
[in] MiniportInterruptContext
Identificador de un bloque de información de contexto. El controlador de minipuerto proporcionó este controlador en el parámetro MiniportInterruptContext que el controlador de miniporte pasó al Función NdisMRegisterInterruptEx .
[in] MessageId
Una interrupción señalada por mensajes. MessageId es un índice para IO_INTERRUPT_MESSAGE_INFO_ENTRY estructuras dentro de IO_INTERRUPT_MESSAGE_INFO estructura. NDIS pasa un puntero a la estructura de IO_INTERRUPT_MESSAGE_INFO asociada en el miembro MessageInfoTable cuando el controlador se registra correctamente para MSI con la función NdisMRegisterInterruptEx .
Valor devuelto
None
Observaciones
Un controlador de miniport debe proporcionar una función MiniportEnableMessageInterrupt si el controlador llama a la función NdisMRegisterInterruptEx para registrar una interrupción.
Los controladores de minipuerto deben deshabilitar y habilitar una interrupción de mensaje, como se explica en MiniportMessageInterrupt y Páginas de referencia de MiniportMessageInterruptDpc .
NDIS llama a MiniportEnableMessageInterrupt y MiniportDisableMessageInterrupt funciones para habilitar y deshabilitar una interrupción de mensaje con fines de diagnóstico y solución de problemas. Normalmente, MiniportEnableMessageInterrupt y MiniportDisableMessageInterrupt acceden a los recursos del controlador de miniporte compartidos por el Función MiniportMessageInterrupt . Por lo tanto, NDIS llama a estos controladores en DIRQL.
Ejemplos
Para definir una función MiniportEnableMessageInterrupt , 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 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 MiniportEnableMessageInterrupt denominada "MyEnableMessageInterrupt", use el tipo MINIPORT_ENABLE_MESSAGE_INTERRUPT como se muestra en este ejemplo de código:
MINIPORT_ENABLE_MESSAGE_INTERRUPT MyEnableMessageInterrupt;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyEnableMessageInterrupt(
__in NDIS_HANDLE MiniportInterruptContext,
__in ULONG MessageId
)
{...}
El tipo de función MINIPORT_ENABLE_MESSAGE_INTERRUPT 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_ENABLE_MESSAGE_INTERRUPT 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 | DIRQL (consulte la sección Comentarios) |