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 señalada por 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 de IO_INTERRUPT_MESSAGE_INFO_ENTRY estructuras dentro de estructura IO_INTERRUPT_MESSAGE_INFO. 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
Punto de entrada del controlador función MiniportSynchronizeInterrupt.
[in] SynchronizeFunction
Punto de entrada del controlador función MiniportSynchronizeInterrupt.
[in] SynchronizeContext
Puntero a un área de contexto determinada por el controlador de miniport que se pasa a la función MiniportSynchronizeInterrupt en SynchronizeContext .
Valor devuelto
NdisMSynchronizeWithInterruptEx devuelve el valor booleano que miniportSynchronizeInterrupt devuelve.
Observaciones
Los controladores de miniport que registran una interrupción con NdisMRegisterInterruptEx usan NdisMSynchronizeWithInterruptEx. Valor que el objeto función MiniportSynchronizeInterrupt también devuelve NdisMSynchronizeWithInterruptEx. Este valor propagado proporciona el estado al autor de la llamada.
Cualquier función del controlador de miniportar 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 por 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 giro de NDIS, consulte sincronización y notificación en controladores de red.
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 (incluye Ndis.h, Video.h) |
biblioteca de | Ndis.lib |
irQL | <= DIRQL |
reglas de cumplimiento de DDI | NdisMDeregisterInterruptEx(ndis) |