Condividi tramite


Abilitazione e disabilitazione degli interruzioni (UMDF 1)

Avviso

UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Nessuna nuova funzionalità viene aggiunta a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.

Gli esempi di UMDF 1 archiviati sono disponibili nell'Windows 11, versione 22H2 - Aggiornamento degli esempi di driver di maggio 2022.

Per altre informazioni, vedere Introduzione a UMDF.

Se il driver gestisce gli interruzioni del dispositivo, deve fornire funzioni di callback onInterruptEnable e OnInterruptDisable che abilitano e disabilitano gli interruzioni. Queste funzioni di callback devono eseguire qualsiasi operazione necessaria per abilitare e disabilitare il meccanismo di interruzione di un dispositivo.

Se il driver deve eseguire operazioni aggiuntive correlate all'abilitazione o alla disabilitazione degli interruzioni, il driver può anche fornire funzioni di callbackInterrupt::OnD0EntryPostInterruptsEnruptsEnabled e IPnpCallbackHardwareInterrupt::OnD0ExitPreruptsDisruptsDisabled.

Il framework chiama le funzioni di callback OnInterruptEnable e IPnpCallbackHardwareInterrupt::OnD0EntryPostInterruptsEnabled Ogni volta che il dispositivo entra nello stato di lavoro (D0), dopo che il framework ha chiamato la funzione di callback OnD0Entry del driver. Il framework chiama le funzioni di callback IPnpCallbackHardwareInterrupt::OnD0ExitPreInterruptsDisabled e OnInterruptDisable callback ogni volta che il dispositivo lascia lo stato di lavoro, prima che il framework chiami la funzione di callback OnD0Exit del driver. Per altre informazioni su quando il framework chiama le funzioni di callback di un driver, vedere PnP e Power Management nei driver basati su UMDF.

Non è necessario presupporre che un dispositivo userà le stesse risorse di interruzione ogni volta che il framework chiama la funzione di callback OnInterruptEnable del driver. A volte il gestore PnP ridistribuisce le risorse di sistema e potrebbe assegnare nuove risorse di interruzione al dispositivo.

Il driver può chiamare IWDFInterrupt::GetInfo per determinare le risorse di interruzione di un dispositivo. Il driver può chiamare IWDFInterrupt::GetDevice per determinare il dispositivo a cui appartiene un oggetto di interruzione.

Per abilitare e disabilitare direttamente gli interruzioni, il driver può chiamare i metodi IWDFInterrupt::Enable e IWDFInterrupt::D isable , che chiamano le funzioni di callback dell'evento OnInterruptEnable e OnInterruptDisable . Tuttavia, la maggior parte dei driver deve consentire al framework di chiamare le funzioni di callback OnInterruptEnable e OnInterruptDisable al momento appropriato.