Condividi tramite


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)

Vedere anche

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY

miniportInterrupt

MiniportSynchronizeInterrupt

NdisMRegisterInterruptEx