C28167

avviso C28167: la funzione modifica irQL e non ripristina l'IRQL prima di uscire. Deve essere annotato per riflettere la modifica o il runtime di integrazione deve essere ripristinato.

Questo avviso indica che le condizioni seguenti sono vere:

  • La funzione modifica il runtime di integrazione in corrispondenza del quale è in esecuzione il driver.

  • È presente almeno un percorso attraverso una funzione che non esegue, in base all'uscita della funzione, ripristinare IRQL nell'IRQL originale in cui il driver era in esecuzione all'ingresso della funzione.

Questo avviso si verifica quando è necessaria un'annotazione IRQL in una funzione, ma non esiste.

Per evitare questo avviso, il driver deve salvare correttamente il valore IRQL iniziale e ripristinare lo stesso valore IRQL all'uscita della funzione se non intende modificare irQL.

Le funzioni che modificano intenzionalmente IRQL in un valore diverso da IRQL in cui il driver era in esecuzione in corrispondenza della voce di funzione deve essere annotato per indicare questo comportamento. Ad esempio, è possibile usare l'annotazione _IRQL_raises_(irql) per indicare che la funzione modifica irQL da IRQL in corrispondenza della quale è stata chiamata la funzione. È anche possibile salvare e ripristinare il valore IRQL e applicare le annotazioni corrispondenti (_IRQL_saves_, _IRQL_restores_). L'annotazione elimina questo avviso. Per altre informazioni, vedere Annotazioni IRQL per i driver. Le funzioni che modificano irQL per errore devono essere corrette.