Tipi di APN
Una chiamata asincrona di routine (APC) è una funzione che viene eseguita in modo asincrono. Le SCHEDE APN sono simili alle chiamate di routine posticipate, ma a differenza dei CONTROLLER di dominio, le APC vengono eseguite all'interno del contesto di un determinato thread. I driver (diversi dai file system e dai driver di filtro del file system) non usano direttamente le SCHEDE APN, ma altre parti del sistema operativo, quindi è necessario essere consapevoli del funzionamento delle API.
Il sistema operativo Windows usa quattro tipi di APN:
Le API speciali in modalità utente vengono eseguite rigorosamente in modalità utente ed eseguite sempre, anche se il thread di destinazione non è in uno stato di attesa avvisabile. Per altre informazioni sulle API speciali in modalità utente, vedere QueueUserAPC2.
Le NORMALI API in modalità utente vengono eseguite rigorosamente in modalità utente e solo quando il thread di destinazione è in uno stato di attesa avvisabile. Il sistema operativo usa le NORMALI API utente per implementare meccanismi come le operazioni di I/O sovrapposte e la routine QueueUserApc Win32.
Le NORMALI API del kernel vengono eseguite in modalità kernel in IRQL = PASSIVE_LEVEL. Un normale kernel APC annulla tutto il codice in modalità utente, incluse le API utente. Le NORMALI API kernel vengono in genere usate dai file system e dai driver di filtro del file system.
Le API del kernel speciali vengono eseguite in modalità kernel in IRQL = APC_LEVEL. Un kernel speciale APC precede il codice in modalità utente e il codice in modalità kernel che viene eseguito in IRQL = PASSIVE_LEVEL, incluse le API utente e le NORMALI API del kernel. Il sistema operativo usa API kernel speciali per gestire operazioni come il completamento della richiesta di I/O.
Per un elenco dei valori IRQLs dalla priorità più bassa alla più alta, vedere Managing Hardware Priority.For a list of IRQLs from lowest to highest priority, see Managing Hardware Priority.