Función NdisMSynchronizeWithInterruptEx (ndis.h)

Los controladores de miniport llaman a la función NdisMSynchronizeWithInterruptEx para sincronizar la ejecución de una función proporcionada por el controlador de miniport con la función MiniportInterrupt .

Sintaxis

BOOLEAN NdisMSynchronizeWithInterruptEx(
  [in] NDIS_HANDLE                            NdisInterruptHandle,
  [in] ULONG                                  MessageId,
  [in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
  [in] PVOID                                  SynchronizeFunction,
  [in] PVOID                                  SynchronizeContext
);

Parámetros

[in] NdisInterruptHandle

Identificador de interrupción que el controlador de miniporte obtuvo en una llamada anterior a Función NdisMRegisterInterruptEx .

[in] MessageId

Una interrupción con señal de mensaje con la que el controlador debe sincronizarse. Si NDIS no conceda interrupciones señaladas de mensaje para el controlador, NDIS omite este parámetro. 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 .

[in] SynchronizeFunction

El punto de entrada del controlador Función MiniportSynchronizeInterrupt .

[in] SynchronizeFunction

El punto de entrada del controlador Función MiniportSynchronizeInterrupt .

[in] SynchronizeContext

Puntero a un área de contexto determinada por el controlador de miniporte que se pasa a la función MiniportSynchronizeInterrupt en SynchronizeContext .

Valor devuelto

NdisMSynchronizeWithInterruptEx devuelve el valor booleano que devuelve MiniportSynchronizeInterrupt .

Comentarios

Los controladores miniport que registran una interrupción con NdisMRegisterInterruptEx usan NdisMSynchronizeWithInterruptEx. Valor que el objeto La función MiniportSynchronizeInterrupt también devuelve NdisMSynchronizeWithInterruptEx. Este valor propagado proporciona el estado al autor de la llamada.

Cualquier función de controlador de miniporte que comparta recursos con cualquier otra función de controlador que se ejecute en DIRQL debe usar NdisMSynchronizeWithInterruptEx para sincronizar su acceso a esos recursos. La función MiniportSynchronizeInterrupt también se ejecuta en DIRQL y los recursos compartidos están protegidos por un bloqueo de número asignado por el sistema. Por lo tanto, los recursos compartidos están protegidos contra el acceso simultáneo mediante la función MiniportInterrupt y el autor de la llamada.

NdisMSynchronizeWithInterruptEx libera el bloqueo de número del sistema y restaura el IRQL original de su llamador antes de devolver el control.

Para obtener más información sobre cómo adquirir y liberar bloqueos de número NDIS, consulte Sincronización y notificación en controladores de red.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h, Video.h)
Library Ndis.lib
IRQL <= DIRQL
Reglas de cumplimiento de DDI NdisMDeregisterInterruptEx(ndis)

Consulte también

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY

MiniportInterrupt

MiniportSynchronizeInterrupt

NdisMRegisterInterruptEx