Disabilitazione delle SCHEDE APN
Il sistema fornisce tre meccanismi per disabilitare i controller di accesso per il thread corrente:
Aree critiche. Quando un thread si trova all'interno di un'area critica, le API utente e le NORMALI API del kernel non vengono eseguite. Le API del kernel speciali vengono ancora eseguite. Per altre informazioni su questi tipi di APC, vedere Tipi di APC.
Aree sorvegliate. Quando un thread si trova all'interno di un'area sorvegliata, non viene eseguito nessuno dei relativi APN.
Generazione del runtime di integrazione corrente in APC_LEVEL o versione successiva. Un thread in esecuzione in IRQL >= APC_LEVEL viene eseguito con tutti i controller di accesso disabilitati.
Si noti che queste impostazioni si applicano al thread corrente e non influiscono sul comportamento di altri thread.
Alcune routine di supporto dei driver devono essere chiamate con determinati tipi di APN disabilitati. Ad esempio, le routine che acquisiscono una risorsa executive (ad esempio ExAcquireResourceSharedLite) devono essere chiamate con le normali API del kernel disabilitate. È necessario chiamare altre routine con determinati tipi di APN abilitati. Ad esempio, qualsiasi routine che si basa su una routine di completamento di I/O (ad esempio IoVolumeDeviceToDosName) deve essere chiamata con API del kernel speciali abilitate. La documentazione per ogni routine specifica se la routine presenta restrizioni specifiche sullo stato dell'esecuzione APC.
Un driver può immettere in modo esplicito un'area critica o sorvegliata chiamando la routine appropriata. Per altre informazioni, vedere Aree critiche e aree protette. Un driver può anche generare in modo esplicito il runtime di integrazione corrente per APC_LEVEL chiamando KeRaiseIrql. Il driver deve successivamente abbassare irQL al valore originale chiamando KeLowerIrql. L'uso di un'area sorvegliata è più veloce rispetto all'aumento e all'abbassamento dell'IRQL corrente, ma le aree sorvegliate sono disponibili solo in Windows Server 2003 e versioni successive di Windows.
Le operazioni mutex seguenti hanno lo stesso effetto di entrare o lasciare un'area critica o sorvegliata o aumentare o abbassare l'IRQL corrente:
La conservazione di un oggetto mutex inserisce in modo implicito il titolare all'interno di un'area critica.
Tenere un mutex sorvegliato posiziona implicitamente il titolare all'interno di una regione sorvegliata.
Mantenere un mutex veloce genera implicitamente l'IRQL corrente per APC_LEVEL.
Per altre informazioni sugli oggetti mutex, vedere Oggetti Mutex. Per altre informazioni sui mutex veloci e sorvegliati, vedi Mutex veloci e mutex sorvegliati.