estructura NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS (ndis.h)
Un controlador de miniporte NDIS define sus características de interrupción en una estructura de NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS y pasa la estructura a la Función NdisMRegisterInterruptEx .
Sintaxis
typedef struct _NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
MINIPORT_ISR_HANDLER InterruptHandler;
MINIPORT_INTERRUPT_DPC_HANDLER InterruptDpcHandler;
MINIPORT_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
MINIPORT_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
BOOLEAN MsiSupported;
BOOLEAN MsiSyncWithAllMessages;
MINIPORT_MSI_ISR_HANDLER MessageInterruptHandler;
MINIPORT_MSI_INTERRUPT_DPC_HANDLER MessageInterruptDpcHandler;
MINIPORT_DISABLE_MSI_INTERRUPT_HANDLER DisableMessageInterruptHandler;
MINIPORT_ENABLE_MSI_INTERRUPT_HANDLER EnableMessageInterruptHandler;
NDIS_INTERRUPT_TYPE InterruptType;
PIO_INTERRUPT_MESSAGE_INFO MessageInfoTable;
} NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS, *PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS;
Miembros
Header
Estructura NDIS_OBJECT_HEADER de la estructura NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS. Establezca el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_MINIPORT_INTERRUPT, el miembro Revision en NDIS_MINIPORT_INTERRUPT_REVISION_1 y el miembro Size en NDIS_SIZEOF_MINIPORT_INTERRUPT_CHARACTERISTICS_REVISION_1.
InterruptHandler
Punto de entrada de la función MiniportInterrupt asociada a esta interrupción.
InterruptDpcHandler
Punto de entrada de la función MiniportInterruptDPC asociada a esta interrupción.
DisableInterruptHandler
El punto de entrada del Función MiniportDisableInterruptEx .
EnableInterruptHandler
El punto de entrada del Función MiniportEnableInterruptEx .
MsiSupported
Establezca este miembro en TRUE si el controlador de minipuerto admite funciones de servicio de interrupción con señal de mensaje (MSI). El controlador miniport debe proporcionar puntos de entrada para las funciones de servicio MSI.
Si se establece este valor en FALSE , se indica que no se admite MSI. Los puntos de entrada de la función de servicio MSI deben establecerse en NULL.
MsiSyncWithAllMessages
Establezca este miembro en TRUE si el controlador de minipuerto debe serializar todas las funciones del servicio MSI.
Establecer este valor en TRUE puede degradar el rendimiento de las interrupciones. Es más eficaz para varias funciones de servicio de interrupción que controlan diferentes mensajes para ejecutarse simultáneamente.
MessageInterruptHandler
El punto de entrada del Función MiniportMessageInterrupt , si existe, asociada a esta interrupción. Si el controlador no admite interrupciones de mensajes, establezca este miembro en NULL.
MessageInterruptDpcHandler
El punto de entrada del Función MiniportMessageInterruptDPC , si existe, asociada a esta interrupción. Si el controlador no admite interrupciones señaladas por mensajes, establezca este miembro en NULL.
DisableMessageInterruptHandler
El punto de entrada del Función MiniportDisableMessageInterrupt , si existe. Si el controlador no admite interrupciones señaladas de mensaje, establezca este miembro en NULL.
EnableMessageInterruptHandler
El punto de entrada del Función MiniportEnableMessageInterrupt , si existe. Si el controlador no admite interrupciones señaladas por mensajes, establezca este miembro en NULL.
InterruptType
Variable de tipo NDIS_INTERRUPT_TYPE. NDIS establece esta variable para indicar qué tipo de interrupción concedió al controlador de miniporte. Si el controlador admite MSI, debe comprobar este valor si NdisMRegisterInterruptEx devuelve NDIS_STATUS_SUCCESS. Si InterruptType se establece en NDIS_CONNECT_LINE_BASED, NDIS concedió al controlador una interrupción basada en línea, lo que puede ocurrir incluso si el controlador admite interrupciones señaladas por mensajes. Si InterruptType se establece en NDIS_CONNECT_MESSAGE_BASED, NDIS concedió al controlador una interrupción señalada por mensaje. En este caso, el controlador puede acceder a MessageInfoTable para obtener la información de interrupción.
MessageInfoTable
Puntero proporcionado por NDIS a un IO_INTERRUPT_MESSAGE_INFO estructura.
- Si InterruptType es NDIS_CONNECT_MESSAGE_BASED, NDIS inicializa una estructura de IO_INTERRUPT_MESSAGE_INFO con información sobre la interrupción y establece MessageInfoTable en un puntero a la estructura. Los controladores de minipuerto no deben modificar la estructura.
- Si InterruptType está NDIS_CONNECT_LINE_BASED, MessageInfoTable debe ser NULL.
Comentarios
Un controlador de minipuerto llama a la función NdisMRegisterInterruptEx para registrar una interrupción. El controlador asigna e inicializa una estructura de NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS para especificar las características de interrupción y los puntos de entrada del controlador y pasa la estructura a NdisMRegisterInterruptEx.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.0 y versiones posteriores. |
Encabezado | ndis.h (incluya Ndis.h) |