Función NdisMRegisterInterruptEx (ndis.h)
Los controladores de miniporte NDIS llaman a la función NdisMRegisterInterruptEx para registrar una interrupción.
Sintaxis
NDIS_STATUS NdisMRegisterInterruptEx(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE MiniportInterruptContext,
[in] PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
[out] PNDIS_HANDLE NdisInterruptHandle
);
Parámetros
[in] MiniportAdapterHandle
Identificador del adaptador de miniporte que NDIS pasó al función miniportInitializeEx.
[in] MiniportInterruptContext
Puntero a un bloque de información de contexto. El controlador de miniporta asigna esta memoria para almacenar información sobre la interrupción. NDIS pasa el bloque de información de contexto en llamadas posteriores a otras funciones asociadas a la interrupción.
[in] MiniportInterruptCharacteristics
Puntero a un NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS estructura que creó el controlador de miniport. El controlador inicializa esta estructura con puntos de entrada del controlador y parámetros de configuración que definen las características de interrupción.
[out] NdisInterruptHandle
Puntero a un identificador NDIS. NDIS escribe el identificador del objeto de interrupción recién creado en la dirección que especifica el puntero NdisInterruptHandle.
Valor devuelto
NdisMRegisterInterruptEx puede devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
NDIS inicializó el objeto de interrupción y proporcionó un identificador de interrupción válido en NdisInterruptHandle . NDIS reclamaba recursos de hardware y configuraba las funciones a las que llama cuando se produce una interrupción. |
|
NdisMRegisterInterruptEx error debido a recursos insuficientes. |
|
Error al intentar inicializar el objeto de interrupción por motivos distintos de los de la lista anterior. |
Observaciones
Un controlador de miniport debe llamar a NdisMRegisterInterruptEx desde su función MiniportInitializeEx si administra una NIC que genera interrupciones.
MiniportInitializeEx debe llamar a función NdisMSetMiniportAttributes antes de llamar a NdisMRegisterInterruptEx.
El controlador miniport debe especificar puntos de entrada para las siguientes funciones de servicio de interrupción:
MiniportDisableInterruptExSi la NIC admite interrupciones señaladas por mensajes (MSI), el controlador de miniport debe especificar puntos de entrada para las siguientes funciones de servicio MSI:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterruptSi un controlador especifica puntos de entrada para MSI, también debe especificar puntos de entrada para las funciones de servicio de interrupción que no son MSI. Además, si NdisMRegisterInterruptEx devuelve NDIS_STATUS_SUCCESS, el controlador debe examinar el valor del miembro InterruptType del elemento NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS estructura para determinar el tipo de interrupciones concedidas por NDIS. Si NDIS no puede conceder compatibilidad con MSI, concederá compatibilidad con interrupciones basadas en líneas.
Cuando las interrupciones están habilitadas en la NIC, se puede llamar a la función MiniportInterrupt(o función MiniportMessageInterrupt) en cualquier momento después de que el controlador llame a NdisMRegisterInterruptEx, incluso antes de que se devuelva NdisMRegisterInterruptEx. Por lo tanto, un controlador no debe llamar a NdisMRegisterInterruptEx hasta que esté listo para controlar una interrupción.
Los controladores llaman a función NdisMDeregisterInterruptEx para liberar recursos asignados previamente con NdisMRegisterInterruptEx.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis) |