Funzione NdisMSynchronizeWithInterruptEx (ndis.h)
I driver Miniport chiamano la funzione NdisMSynchronizeWithInterruptEx per sincronizzare l'esecuzione di una funzione fornita dal driver miniport con la funzione miniportInterrupt.
Sintassi
BOOLEAN NdisMSynchronizeWithInterruptEx(
[in] NDIS_HANDLE NdisInterruptHandle,
[in] ULONG MessageId,
[in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
[in] PVOID SynchronizeFunction,
[in] PVOID SynchronizeContext
);
Parametri
[in] NdisInterruptHandle
Handle di interrupt ottenuto dal driver miniport in una chiamata precedente al funzione NdisMRegisterInterruptEx.
[in] MessageId
Interrupt segnalato da un messaggio con cui il driver deve eseguire la sincronizzazione. Se NDIS non ha concesso interruzioni segnalate al messaggio per il driver, NDIS ignora questo parametro. MessageId è un indice dell'oggetto IO_INTERRUPT_MESSAGE_INFO_ENTRY strutture all'interno di un IO_INTERRUPT_MESSAGE_INFO struttura. NDIS passa un puntatore alla struttura di IO_INTERRUPT_MESSAGE_INFO associata nel membro MessageInfoTable quando il driver esegue correttamente la registrazione per MSI con la funzione NdisMRegisterInterruptEx.
[in] SynchronizeFunction
Punto di ingresso del conducente funzione MiniportSynchronizeInterrupt.
[in] SynchronizeFunction
Punto di ingresso del conducente funzione MiniportSynchronizeInterrupt.
[in] SynchronizeContext
Puntatore a un'area di contesto determinata dal driver miniport passata alla funzione MiniportSynchronizeInterrupt in SynchronizeContext .
Valore restituito
NdisMSynchronizeWithInterruptEx restituisce il valore booleano restituito MiniportSynchronizeInterrupt.
Osservazioni
I driver Miniport che registrano un interrupt con NdisMRegisterInterruptEx usano NdisMSynchronizeWithInterruptEx. Valore dell'oggetto la funzione MiniportSynchronizeInterrupt viene restituita anche da NdisMSynchronizeWithInterruptEx. Questo valore propagato fornisce lo stato al chiamante.
Qualsiasi funzione driver miniport che condivide le risorse con qualsiasi altra funzione driver eseguita in DIRQL deve usare NdisMSynchronizeWithInterruptEx per sincronizzare l'accesso a tali risorse. La funzione MiniportSynchronizeInterrupt viene eseguita anche in DIRQL e le risorse condivise sono protette da un blocco spin allocato dal sistema. Pertanto, le risorse condivise sono protette dall'accesso simultaneo dalla funzione MiniportInterrupt e dal chiamante.
NdisMSynchronizeWithInterruptEx rilascia il blocco di selezione di sistema e ripristina l'IRQL originale del chiamante prima di restituire il controllo.
Per altre informazioni sull'acquisizione e il rilascio di blocchi di selezione NDIS, vedere sincronizzazione e notifica di nei driver di rete.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
piattaforma di destinazione | Universale |
intestazione | ndis.h (include Ndis.h, Video.h) |
libreria | Ndis.lib |
IRQL | <= DIRQL |
regole di conformità DDI | NdisMDeregisterInterruptEx(ndis) |