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) |