Controllo bug 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
Il controllo dei bug DRIVER_VERIFIER_IOMANAGER_VIOLATION ha un valore di 0x000000C9. Si tratta del codice di controllo dei bug per tutte le violazioni di verifica dell'I/O del driver.
Importante
Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.
parametri DRIVER_VERIFIER_IOMANAGER_VIOLATION
Quando Verifica driver è attiva e viene selezionata la verifica di I/O, verranno eseguite varie violazioni di I/O. Il parametro 1 identifica il tipo di violazione.
Parametro 1 | Parametro 2 | Parametro 3 | Parametro 4 | Causa dell'errore |
---|---|---|---|---|
0x01 |
Indirizzo di IRP liberato |
0 |
0 |
Il driver ha tentato di liberare un oggetto il cui tipo non è IO_TYPE_IRP. |
0x02 |
Indirizzo di IRP liberato |
0 |
0 |
Il driver ha tentato di liberare un IRP ancora associato a un thread. |
0x03 |
Indirizzo di IRP inviato |
0 |
0 |
Il driver ha passato IoCallDriver a un tipo IRP non uguale a IRP_TYPE. |
0x04 |
Indirizzo dell'oggetto dispositivo |
0 |
0 |
Il driver ha passato IoCallDriver a un oggetto dispositivo non valido. |
0x05 |
Indirizzo dell'oggetto dispositivo associato al driver che causa un'offesa |
IRQL prima di IoCallDriver |
IRQL dopo IoCallDriver |
IrQL modificato durante una chiamata alla routine di invio del driver. |
0x06 |
Stato di IRP |
Indirizzo di IRP completato |
0 |
Il driver denominato IoCompleteRequest con stato contrassegnato come in sospeso (o uguale a -1). |
0x07 |
Indirizzo della routine di annullamento |
Indirizzo di IRP completato |
0 |
Il driver ha chiamato IoCompleteRequest mentre la routine di annullamento è ancora stata impostata. |
0x08 |
Indirizzo dell'oggetto dispositivo |
Codice della funzione principale IRP |
Codice di stato dell'eccezione |
Il driver ha passato IoBuildAsynchronousFsdRequest un buffer non valido. |
0x09 |
Indirizzo dell'oggetto dispositivo |
Codice di controllo di I/O |
Codice di stato dell'eccezione |
Il driver ha passato IoBuildDeviceIoControlRequest un buffer non valido. |
0x10 |
IRQL corrente |
Prenotato |
Prenotato |
IoCallDriver è stato chiamato sopra DISPATCH_LEVEL. |
0x11 |
Indirizzo di routine dispatch I/O rapido del driver |
IRQL prima di chiamare la routine dispatch del driver |
IRQL corrente |
IoCallDriver è stato chiamato sopra DISPATCH_LEVEL. |
0x12 |
Indirizzo di routine dell'invio del driver |
IRQL prima di chiamare la routine dispatch del driver |
IRQL corrente |
IoCallDriver è stato chiamato sopra DISPATCH_LEVEL. |
0x0A |
Indirizzo dell'oggetto dispositivo |
0 |
0 |
Il driver ha passato IoInitializeTimer a un oggetto dispositivo con un timer già inizializzato. |
0x0C |
Indirizzo del blocco di stato di I/O |
0 |
0 |
Il driver ha passato un blocco di stato di I/O a un IRP, ma questo blocco viene allocato in uno stack che non è già stato eseguito oltre quel punto. |
0x0D |
Indirizzo dell'oggetto evento utente |
0 |
0 |
Il driver ha passato un evento utente a un IRP, ma questo evento viene allocato in uno stack che non è già stato eseguito oltre quel punto. |
0x0E |
IRQL corrente |
Indirizzo di IRP |
0 |
Il driver denominato IoCompleteRequest con irQL > DISPATCH_LEVEL. |
0x0F |
Indirizzo dell'oggetto dispositivo a cui viene inviato l'IRP |
Puntatore all'IRP |
Puntatore all'oggetto file |
Il driver ha inviato una richiesta di creazione con un oggetto file chiuso o che ne ha annullato l'apertura. |
Oltre agli errori indicati nella tabella precedente, esistono diversi errori di verifica di I/O che causeranno l'arresto del sistema da parte di Driver Verifier, ma che non sono effettivamente controlli di bug.
Questi errori causano la visualizzazione dei messaggi nella schermata blu, in un file di dump di arresto anomalo del sistema e in un debugger del kernel. Questi messaggi verranno visualizzati in modo diverso in ognuna di queste posizioni. Quando si verificano questi errori, il codice di controllo del bug esadecimale 0xC9 e la stringa di controllo dei bug DRIVER_VERIFIER_IOMANAGER_VIOLATION non vengono visualizzate nella schermata blu o nel debugger, anche se verranno visualizzate in un file di dump di arresto anomalo del sistema.
Nella schermata blu verranno visualizzati i dati seguenti:
Messaggio ERRORE DI VERIFICA DEL SISTEMA IO.
Messaggio ERRORE WDM DRIVER XXX, dove XXX è un codice esadecimale che rappresenta l'errore specifico. Per un elenco dei codici di errore di I/O e dei relativi significati, vedere la tabella seguente.
Nome del driver che ha causato l'errore.
In genere, l'indirizzo nel codice del driver in cui è stato rilevato l'errore (parametro 2).
Se è stato abilitato un dump di arresto anomalo in modalità kernel, nel file di dump dell'arresto anomalo del sistema verranno visualizzate le informazioni seguenti:
Messaggio BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION).
Codice di errore di I/O esadecimale. Per un elenco dei codici di errore di I/O e dei relativi significati, vedere la tabella seguente.
In genere, l'indirizzo nel codice del driver in cui è stato rilevato l'errore (parametro 2).
Se un debugger del kernel è collegato al sistema che ha causato questa violazione, le informazioni seguenti verranno inviate al debugger:
Messaggio WDM DRIVER ERROR, insieme a una valutazione della gravità dell'errore.
Nome del driver che ha causato l'errore.
Stringa descrittiva che spiega la causa dell'errore. Spesso vengono passate informazioni aggiuntive, ad esempio un puntatore all'IRP o un puntatore all'oggetto dispositivo o informazioni IRQL. Per un elenco di queste stringhe descrittive e delle informazioni aggiuntive specificate, vedere la tabella seguente.
Query per un'ulteriore azione. Le risposte possibili sono b (break), i (ignore), z (zap), r (remove) o d (disable). Indicare al sistema operativo di continuare consente di vedere cosa accadrebbe "verso il basso" se questo errore non si fosse verificato. Naturalmente, questo spesso causerà controlli di bug aggiuntivi. L'opzione "zap" rimuoverà effettivamente il punto di interruzione che ha causato l'errore da individuare.
Nota Nessun altro controllo di bug può essere ignorato in questo modo. Solo questo tipo di errori di verifica di I/O può essere ignorato e anche questi errori possono essere ignorati solo se è collegato un debugger del kernel.
Nella tabella seguente sono elencati gli errori di verifica di I/O che possono essere visualizzati.
Codice di errore di I/O | Gravità | Causa dell'errore |
---|---|---|
0x200 |
Sconosciuto |
Questo codice copre tutti gli errori di verifica di I/O sconosciuti. |
0x201 |
Errore irreversibile |
Un dispositivo sta eliminando se stesso mentre è presente un altro dispositivo sotto di esso nello stack di driver. Questo può essere dovuto al fatto che il chiamante ha dimenticato di chiamare prima IoDetachDevice o il driver inferiore potrebbe aver eliminato erroneamente se stesso. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. |
0x202 |
Errore irreversibile |
Un driver ha tentato di scollegarsi da un oggetto dispositivo che non è collegato ad alcun elemento. Questo problema può verificarsi se lo scollegamento è stato chiamato due volte sullo stesso oggetto dispositivo. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo dell'oggetto dispositivo. |
0x203 |
Errore irreversibile |
Un driver ha chiamato IoCallDriver senza impostare la routine di annullamento in IRP su NULL. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x204 |
Errore irreversibile |
Il chiamante ha passato NULL come oggetto dispositivo. Questo è fatale. Param 2 - Riservato Param 3 - Riservato |
0x205 |
Errore irreversibile |
Il chiamante sta inoltrando un IRP attualmente in coda sotto di esso. Il codice che gestisce i runtime di integrazione che restituiscono STATUS_PENDING in questo driver sembra essere interrotto. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x206 |
Errore irreversibile |
Il chiamante ha inoltrato erroneamente un IRP (campo di controllo non azzerato). Il driver deve usare IoCopyCurrentIrpStackLocationToNext o IoSkipCurrentIrpStackLocation. Param 2 - Riservato Param 3 - Riservato |
0x207 |
Errore irreversibile |
Il chiamante ha copiato manualmente lo stack e ha copiato inavvertitamente la routine di completamento del livello superiore. Il driver deve usare IoCopyCurrentIrpStackLocationToNext. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x208 |
Errore irreversibile |
Questo IRP sta per esaurire le posizioni dello stack. Qualcuno potrebbe aver inoltrato questo IRP da un altro stack. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x209 |
Errore irreversibile |
Il chiamante sta completando un IRP attualmente in coda sotto di esso. Il codice che gestisce i runtime di integrazione che restituiscono STATUS_PENDING in questo driver sembra essere interrotto. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x20A |
Errore irreversibile |
Il chiamante di IoFreeIrp libera un IRP ancora in uso. Param 2 - Riservato Param 3 - Riservato |
0x20B |
Errore irreversibile |
Il chiamante di IoFreeIrp libera un IRP ancora in uso. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x20C |
Errore irreversibile |
Il chiamante di IoFreeIrp libera un IRP ancora in coda su un thread. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x20D |
Errore irreversibile |
Il chiamante di IoInitializeIrp ha passato un IRP allocato con IoAllocateIrp. Questo è illegale e non necessario, e ha causato una perdita di quota. Controllare la documentazione relativa a IoReuseIrp se l'IRP è in fase di riciclo. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x20E |
Errore non irreversibile |
Uno stato di IRP PNP non è valido. Qualsiasi IRP PNP deve avere lo stato inizializzato per STATUS_NOT_SUPPORTED. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x20F |
Errore non irreversibile |
Uno stato di Power IRP non è valido. Per STATUS_NOT_SUPPORTED deve essere stato inizializzato qualsiasi provider di risorse di Power IRP. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x210 |
Errore non irreversibile |
Uno stato di IRP WMI non è valido. Qualsiasi IRP WMI deve avere lo stato inizializzato per STATUS_NOT_SUPPORTED. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x211 |
Errore non irreversibile |
Il chiamante ha inoltrato un IRP ignorando un oggetto dispositivo nello stack. Il chiamante sta probabilmente inviando IP al PDO anziché al dispositivo restituito da IoAttachDeviceToDeviceToDeviceStack. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x212 |
Errore non irreversibile |
Il chiamante ha spazzatura o non ha copiato correttamente lo stack di IRP. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x213 |
Errore non irreversibile |
Il chiamante ha modificato il campo di stato di un IRP che non riconosce. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x214 |
Errore non irreversibile |
Il chiamante ha modificato il campo informativo di un IRP che non riconosce. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x215 |
Errore non irreversibile |
Uno stato IRP non riuscito non STATUS_NOT_SUPPORTED per IRP_MJ_PNP viene passato allo stack. I runtime di integrazione PNP non riusciti devono essere completati. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x216 |
Errore non irreversibile |
Lo stato IRP_MJ_PNP impostato in precedenza è stato convertito in STATUS_NOT_SUPPORTED. Questo stato di errore è riservato per l'uso da parte del sistema operativo. I driver non possono avere esito negativo in un IRP PnP con questo valore. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x217 |
Errore non irreversibile |
Il driver non ha gestito un IRP obbligatorio. Il driver deve aggiornare lo stato dell'IRP per indicare se è stato gestito o meno. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x218 |
Errore non irreversibile |
Il driver ha risposto a un IRP riservato ad altri oggetti dispositivo altrove nello stack. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x219 |
Errore non irreversibile |
Uno stato IRP STATUS_NOT_SUPPORTED non riuscito per IRP_MJ_POWER viene passato allo stack non riuscito. I runtime di integrazione POWER non riusciti devono essere completati. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x21A |
Errore non irreversibile |
Lo stato IRP_MJ_POWER impostato in precedenza è stato convertito in STATUS_NOT_SUPPORTED. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x21B |
Errore non irreversibile |
Un driver ha restituito uno stato sospetto. Questo è probabilmente dovuto a un bug di variabile non inizializzato nel driver. Param 3 - Indirizzo IRP. |
0x21C |
Avviso |
Il chiamante ha copiato lo stack IRP ma non ha impostato una routine di completamento. Questo è inefficiente: usare invece IoSkipCurrentIrpStackLocation . Param 2 - Riservato Param 3 - Riservato |
0x21D |
Errore irreversibile |
Un gestore di invio IRP non è stato disconnesso correttamente dallo stack sottostante al momento della ricezione di un IRP di rimozione. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x21E |
Errore irreversibile |
Un gestore dispatch IRP non ha eliminato correttamente il relativo oggetto dispositivo quando riceve un IRP di rimozione. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x21F |
Errore non irreversibile |
Un driver non ha compilato una routine di invio per una funzione principale IRP richiesta. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x220 |
Errore non irreversibile |
IRP_MJ_SYSTEM_CONTROL è stato completato da un utente diverso da ProviderId. Questo IRP dovrebbe essere stato completato in precedenza o dovrebbe essere stato passato. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - ProviderId. |
0x221 |
Errore irreversibile |
Un gestore dispatch IRP per un PDO ha eliminato il relativo oggetto dispositivo, ma l'hardware non è stato segnalato come mancante in una query di relazioni tra bus. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x222 |
Errore irreversibile |
Il gestore di invio IRP di un filtro del bus si è scollegato quando riceve un IRP di rimozione quando il PDO è ancora attivo. I filtri del bus devono essere puliti nei callback FastIoDetach . Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x223 |
Errore irreversibile |
Un gestore di invio IRP per un filtro bus ha eliminato il relativo oggetto dispositivo, ma il PDO è ancora presente. I filtri del bus devono essere puliti nei callback FastIoDetach . Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x224 |
Errore irreversibile |
Un gestore dispatch IRP ha restituito uno stato incoerente con il campo IoStatus.Status di IRP. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 : codice di stato previsto. |
0x225 |
Errore non irreversibile |
Un gestore di invio IRP ha restituito uno stato non valido (0xFFFFFFFF). Ciò è probabilmente dovuto a una variabile dello stack non inizializzata. Per eseguire il debug di questo errore, usare il comando ln (List Nearest Symbols) con l'indirizzo specificato. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Codice di stato. |
0x226 |
Errore irreversibile |
Un gestore di invio IRP è stato restituito senza passare o completare l'IRP oppure qualcuno ha dimenticato di restituire STATUS_PENDING. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x227 |
Errore irreversibile |
Una routine di completamento di IRP è in codice di paging. (Questo non è mai consentito. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x228 |
Errore non irreversibile |
La routine di completamento di un driver non ha contrassegnato l'IRP in sospeso se il campo PendingReturned è stato impostato nell'IRP passato. Ciò può causare il blocco di Windows, soprattutto se viene restituito un errore dallo stack. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x229 |
Errore irreversibile |
È stata impostata una routine di annullamento per un IRP attualmente in fase di elaborazione da parte dei driver nello stack, possibilmente stomping della routine di annullamento. Param 2 - Riservato. Param 3 - Riservato. |
0x22A |
Errore non irreversibile |
L'oggetto dispositivo fisico (PDO) non ha risposto a un IRP richiesto. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x22B |
Errore non irreversibile |
L'oggetto dispositivo fisico (PDO) ha dimenticato di compilare l'elenco delle relazioni del dispositivo con il PDO per la query TargetDeviceRelation . Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x22C |
Errore irreversibile |
Il codice che implementa la query TargetDeviceRelation non ha chiamato ObReferenceObject nel PDO. Param 2 - Riservato. Param 3 - Riservato. |
0x22D |
Errore non irreversibile |
Il chiamante ha completato un IRP_MJ_PNP non ha capito invece di passarlo. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x22E |
Errore non irreversibile |
Il chiamante ha completato un IRP_MJ_PNP riuscito invece di passarlo. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x22F |
Errore non irreversibile |
Il chiamante ha completato un IRP_MJ_PNP non toccato (invece di passare l'IRP verso il basso) o non PDO non ha superato l'IRP usando il valore non valido di STATUS_NOT_SUPPORTED. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x230 |
Errore non irreversibile |
Il chiamante ha completato un IRP_MJ_POWER non ha capito invece di passarlo. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x231 |
Errore irreversibile |
Il chiamante ha completato un IRP_MJ_POWER riuscito invece di passarlo in basso. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x232 |
Errore non irreversibile |
Il chiamante ha completato un IRP_MJ_POWER non toccato (invece di passare l'IRP verso il basso) o non PDO ha fallito l'IRP usando il valore illegale di STATUS_NOT_SUPPORTED. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x233 |
Errore non irreversibile |
Il campo della versione della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x234 |
Errore non irreversibile |
Il campo delle dimensioni della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x235 |
Errore non irreversibile |
Il campo indirizzo della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente su -1. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x236 |
Errore non irreversibile |
Il campo Numero interfaccia utente della struttura delle funzionalità di query in una funzionalità di query IRP non è stato inizializzato correttamente su -1. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x237 |
Errore irreversibile |
Un driver ha inviato un IRP limitato solo all'uso del sistema. Param 2 - Riservato. Param 3 - Riservato. |
0x238 |
Avviso |
Il chiamante di IoInitializeIrp ha passato un IRP allocato con IoAllocateIrp. Questo è illegale, non necessario e influisce negativamente sulle prestazioni in uso normale. Se questo IRP viene riciclato, vedere IoReuseIrp in Windows Driver Kit. Param 2 - Riservato. Param 3 - Riservato. |
0x239 |
Avviso |
Il chiamante di IoCompleteRequest sta completando un IRP che non è mai stato inoltrato tramite una chiamata a IoCallDriver o PoCallDriver. Potrebbe trattarsi di un bug. Param 2 - Riservato. Param 3 - Riservato. |
0x23A |
Errore irreversibile |
Un driver ha inoltrato un IRP a un IRQL non valido per questo codice principale. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x23B |
Errore non irreversibile |
Il chiamante ha modificato il campo di stato di un IRP che non riconosce. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
Nella tabella seguente sono elencati altri errori di verifica di I/O che possono essere visualizzati. Questi errori vengono visualizzati quando viene attivata la verifica di I/O avanzata. Per altre informazioni, vedere Verifica avanzata di I/O.
Codice di errore di I/O | Gravità | Causa dell'errore |
---|---|---|
0x23C |
Errore irreversibile |
Un driver ha completato un IRP senza impostare la routine di annullamento in IRP su NULL. Param 2 - Riservato. Param 3 - Riservato. |
0x23D |
Errore non irreversibile |
Un driver ha restituito STATUS_PENDING ma non ha contrassegnato l'IRP in sospeso tramite una chiamata a IoMarkIrpPending. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Codice di stato. |
0x23E |
Errore non irreversibile |
Un driver ha contrassegnato un IRP in sospeso ma non ha restituito STATUS_PENDING. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Codice di stato. |
0x23F |
Errore irreversibile |
Un driver non ha ereditato il bit DO_POWER_PAGABLE dallo stack a cui è collegato. Param 2 - Riservato. Param 3 - Riservato. |
0x240 |
Errore irreversibile |
Un driver sta tentando di eliminare un oggetto dispositivo che è già stato eliminato tramite una chiamata precedente a IoDeleteDevice. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 2 - Riservato. Param 3 - Riservato. |
0x241 |
Errore irreversibile |
Un driver ha scollegato l'oggetto dispositivo durante una rimozione a sorpresa di IRP. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x242 |
Errore irreversibile |
Un driver ha eliminato il relativo oggetto dispositivo durante una rimozione a sorpresa di IRP. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x243 |
Errore irreversibile |
Un driver non è riuscito a cancellare il flag di DO_DEVICE_INITIALIZING alla fine di AddDevice. Param 2 - Riservato. Param 3 - Riservato. Param 4 - |
0x244 |
Errore irreversibile |
Un driver non ha copiato il DO_BUFFERED_IO o il flag DO_DIRECT_IO dall'oggetto dispositivo a cui è collegato. Param 2 - Riservato. Param 3 - Riservato. |
0x245 |
Errore irreversibile |
Un driver ha impostato sia i flag DO_BUFFERED_IO che i flag di DO_DIRECT_IO. Questi flag si escludono a vicenda. Param 2 - Riservato. Param 3 - Riservato. |
0x246 |
Errore irreversibile |
Un driver non è riuscito a copiare il campo DeviceType dall'oggetto dispositivo a cui è collegato. Param 2 - Riservato. Param 3 - Riservato. |
0x247 |
Errore irreversibile Param 2 - Riservato. Param 3 - Riservato. |
Un driver non è riuscito a un IRP che non può essere legalmente non riuscito. |
0x248 |
Errore irreversibile |
Un driver ha aggiunto un oggetto dispositivo che non è un PDO a una query di relazioni tra dispositivi. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x249 |
Errore non irreversibile |
Un driver ha enumerato due PDO figlio che hanno restituito id dispositivo identici. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Primo indirizzo dell'oggetto dispositivo. Param 4 - Secondo indirizzo dell'oggetto dispositivo. |
0x24A |
Errore irreversibile |
Un driver ha erroneamente chiamato una funzione di I/O di file con IRQL non uguale a PASSIVE_LEVEL. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Riservato. Param 4 - Riservato. |
0x24B |
Errore irreversibile |
Un driver ha completato una richiesta IRP_MN_QUERY_DEVICE_RELATIONS di tipo TargetDeviceRelation come riuscita, ma non ha compilato correttamente la richiesta o inoltrato l'IRP allo stack hardware sottostante. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo dell'oggetto dispositivo. |
0x24C |
Errore non irreversibile |
Un driver ha restituito STATUS_PENDING ma non ha contrassegnato l'IRP in sospeso da una chiamata a IoMarkIrpPending. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Codice di stato. |
0x24D |
Errore irreversibile |
Un driver ha passato un oggetto dispositivo non valido a una funzione che richiede un PDO. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Indirizzo dell'oggetto dispositivo. |
0x300 |
Errore non irreversibile |
Un driver ha restituito uno stato sospetto. Questo è probabilmente dovuto a un bug di variabile non inizializzato nel driver. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 : codice di stato sospetto. |
0x301 |
Errore non irreversibile |
Un driver ha inoltrato un IRP in IRQL > DISPATCH_LEVEL. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Valore IRQL non corretto |
0x302 |
Errore non irreversibile |
Un driver ha inoltrato un IRP in IRQL > = APC_LEVEL. Per completare questa richiesta, gestione I/O dovrà accodare un APC. L'APC non sarà in grado di eseguire perché il chiamante è già a livello APC, quindi è probabile che il chiamante sia deadlock. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. Param 4 - Valore IRQL non corretto. |
0x306 |
Errore non irreversibile |
Il driver sta completando una richiesta IRP_MJ_PNP (principale) e IRP_MN_REMOVE_DEVICE (secondaria) con un codice di stato di errore. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x307 |
Errore non irreversibile |
Il driver ha inviato una richiesta di I/O con un evento già segnalato e ha ricevuto una risposta STATUS_PENDING. Ciò può comportare la rimozione prima del completamento dell'I/O. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x310 |
Errore non irreversibile |
Il driver sta reinizializzando un IRP ancora in uso. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x311 |
Errore non irreversibile |
Il driver sta reinizializzando un IRP creato con IoMakeAssociatedIrp, IoBuildAsynchronousFsdRequest, IoBuildSynchronousFsdRequest, IoBuildDeviceIoControlRequest. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
0x312 |
Errore non irreversibile |
Il chiamante ha fornito al campo Informazioni sullo stato IRP con un valore maggiore della sezione di output del buffer di sistema. Param 2: indirizzo nel codice del driver in cui è stato rilevato l'errore. Param 3 - Indirizzo IRP. |
Causa
Per una descrizione della causa, vedere la descrizione di ogni codice nella sezione Parametri.
Risoluzione
Questo controllo di bug può verificarsi solo quando è stato richiesto di monitorare uno o più driver. Se non si intende usare Driver Verifier, è consigliabile disattivarlo. Per altre informazioni, vedere "Come controllare Driver Verifier" in Driver Verifier. È possibile prendere in considerazione l'aggiornamento o la rimozione del driver che ha causato anche questo problema.
Gli sviluppatori di driver usano le informazioni ottenute tramite questo controllo di bug per correggere i bug nel codice.
Per informazioni dettagliate su Driver Verifier, vedere Driver Verifier.For full details on Driver Verifier, see Driver Verifier.